মাল্টলাইন ভিতরে ওয়াইল্ডকার্ড সহ মোড়ক খুঁজে এবং প্রতিস্থাপন


0

আমি ইতিমধ্যে বিদ্যমান একগুচ্ছ ক্ষেত্রের চারপাশে একটি মোড়ক দেওয়ার চেষ্টা করছি।

আমি এটি রূপান্তর করতে চাই:

<div class="editor-label">
    @Html.LabelFor(Function(model) model.FirstName)
</div>
<div class="editor-field">
    @Html.EditorFor(Function(model) model.LastName)
</div>

এটি:

<div class="field-group">
    <div class="editor-label">
        @Html.LabelFor(Function(model) model.FirstName)
    </div>
    <div class="editor-field">
        @Html.EditorFor(Function(model) model.LastName)
    </div>
</div>

আমি রেগেক্সের সাথে বেশ সবুজ, তবে এই প্যাটার্নটির সাথে মিলের জন্য আমি এতদূর পায়খানাটি এসেছি :

<div class="editor-label">(.|\r\n)*?(</div>)(.|\r\n)*?(</div>)

তারপরে এটি এর মতো কিছু দিয়ে প্রতিস্থাপন করতে পারে:

<div class="field-group"><div class="editor-label">(.|\r\n)*?(</div>)(.|\r\n)*?(</div>)</div>

তবে তা অবশ্যই কাজ করে না। তবে ধারণাটি মিলে যাওয়া মানটিকে ঘিরে রাখবে।

আমি যখন নোটপ্যাড ++ এ প্রতিস্থাপনটি ব্যবহার করি তখন এটি ম্যাচের (.|\r\n)*?(</div>)মানটির পরিবর্তে স্ট্রিংয়ের সাথে প্রতিস্থাপন করে ।

আমি কি একটি ওয়াইল্ডকার্ড অনুসন্ধান করতে পারি এবং প্রতিস্থাপন করতে পারি যা মূল ওয়াইল্ডকার্ডের সাথে ম্যাচের মানটি ধরে রেখেছে?
বা কোনওভাবে বিষয়বস্তু অন্যভাবে মোড়ানো?

দ্রষ্টব্য : আমি নোটপ্যাড ++ ব্যবহার করছি তবে আমি আনন্দের সাথে অন্য কোনও পাঠ্য সম্পাদক ব্যবহার করব যা এই ধরণের কার্যকারিতা সহ has


নোটপ্যাড ++, তাই না? স্টক নোটপ্যাড উইন্ডোজ অন্তর্ভুক্ত না?
জেমস ব্রুয়ার

আপনি কি সাথে ম্যাচ প্রতিস্থাপন করছেন? সমস্যা মনে হচ্ছে।
এক্সেলেল

@ এক্সেল, আমি মূলত প্রদত্ত বর্ণনার সাথে মেলে এমন সামগ্রীর চারপাশে একটি মোড়ক যুক্ত করতে চাই। যদি এটি মেলে, আমি পুরো পাঠ্য ব্লকটি নিতে এবং এর আগে এবং পরে সামগ্রী যুক্ত করতে চাই।
কাইলমিত

বুঝেছি. আপনি নোটপ্যাড ++ এর ম্যাচটি প্রতিস্থাপন করতে যে স্ট্রিংটি ব্যবহার করছেন তাতে আমি বেশি আগ্রহী ছিলাম। অর্থাৎ, আপনি Replace withমাঠে কি টাইপ করেছেন ?
এক্সেল

@ এক্সেল, আপডেট যুক্ত
কাইলমিত

উত্তর:


0

আপনি রেজেক্স সাবস্টিটিউশন ইঞ্জিন দিয়ে এটি করতে পারেন যা নোটপ্যাডের ফাইন্ড এন্ড রিপ্লেস বৈশিষ্ট্যটির মাধ্যমে প্রকাশিত হয়। তবে প্রথমে, আপনাকে কোনও রেজেক্স কীভাবে টেক্সট সন্ধান এবং প্রতিস্থাপন করতে সক্ষম তা সম্পর্কে আপনাকে কিছুটা পরিচিত হতে হবে।

কিছু রিজেক্স তথ্য

ক্যাপচার গ্রুপ :

  • (ABC)- ক্যাপচারিং গ্রুপ - একসাথে একাধিক টোকেনকে গোষ্ঠী দেয় এবং একটি ক্যাপচার গ্রুপ তৈরি করে
  • (?:ABC)- নন-ক্যাপচারিং গ্রুপ - ক্যাপচার গ্রুপ তৈরি না করেই গ্রুপগুলি টোকেন করে
  • \n- পশ্চাদপসরণ - পূর্ববর্তী ক্যাপচার গ্রুপের ফলাফলগুলির সাথে মেলে (প্রাক্তন \1)

প্রতিস্থাপনের প্রতীক :

  • $&- ম্যাচ - সম্পূর্ণ মিলিত পাঠ্য সন্নিবেশ করান।
  • $n- গ্রুপ # এন ক্যাপচার - নির্দিষ্ট ক্যাপচার গ্রুপের ফলাফল সন্নিবেশ করায় (প্রাক্তন $1)

রেজেক্স সাবস্টিটিউশন দিয়ে কীভাবে মোড়ানো যায়

যে কোনও পাঠ্য মোড়ানোর জন্য, এটি সন্ধানের জন্য প্রথমে একটি রেজেক্স কোয়েরিটি ডান করুন। তারপরে সেই পুরো স্ট্রিংটির পরিবর্তে আপনি যে চারপাশে মোড়ানো করতে চান সেটি এবং মূল ম্যাচযুক্ত পাঠ্যটি ব্যবহার করে একটি নতুন রচনা তৈরি করুন $&

RegExr এ এখানে একটি ডেমো রয়েছে :

টেক্সট মোড়ানো

জাভাস্ক্রিপ্ট সহ এখানে একটি উদাহরণ রয়েছে :

var wrapMe = 'WrapMe';
var wrapped = wrapMe.replace(/WrapMe/g, "<wrapper> $& </wrapper>");
console.log(wrapped); // <wrapper> WrapMe </wrapper>

প্রতিস্থাপনের সাথে পুরো রেজেক্স ক্যোয়ারী মোড়ানোর জন্য


রেজেক্স সাবস্টিটিউশন সহ কীভাবে সন্নিবেশ করবেন

RegExr এ এখানে একটি ডেমো রয়েছে :

পাঠ্য .োকান

জাভাস্ক্রিপ্ট সহ এখানে একটি উদাহরণ রয়েছে :

var insertMe = '<wrapper>Replace</wrapper>';
var inserted = insertMe.replace(/(<wrapper>).*(<\/wrapper>)/g, "$1 Inserted $2");
console.log(inserted); // <wrapper> Inserted </wrapper>

হাতের সমস্যা

এগুলি জেনে নোটপ্যাডে (বা অন্য কোথাও) সমস্যাটি বরং তুচ্ছ মনে হবে:

RegExr এ এখানে একটি ডেমো রয়েছে :

অনুসন্ধান করুন : এর সাথে <div class="editor-label">((.|\n)*?(<\/div>)){2,2}
প্রতিস্থাপন করুন :<div class="field-group">\n$&\n</div>

আপনি Ctrl+ এর সাথে সন্ধান এবং প্রতিস্থাপনটি টানতে পারেনH

সমস্যা স্ক্রিনশট

দ্রষ্টব্য : অনুসন্ধান মোডটিকে নিয়মিত এক্সপ্রেশন হিসাবে সেট করতে এবং এছাড়াও নোটপ্যাডে সাধারণত \r\nকেবল পরিবর্তে একটি নতুন লাইন খুঁজে পাওয়া দরকার মনে রাখবেন\n

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.