regex101 - regular expression




নিয়মিত অভিব্যক্তি একটি স্ট্রিং খুঁজে পেতে delimiters অতিক্রম করার সময় দুটি অক্ষরের মধ্যে অন্তর্ভুক্ত (7)

আপনি বন্ধনী ছাড়া টেক্সট নিষ্কাশন প্রয়োজন হলে, আপনি bash awk ব্যবহার করতে পারেন

echo " [hola mundo] " | awk -F'[][]' '{print $2}'

ফলাফল:

hola mundo

আমি একটি স্ট্রিং থেকে অক্ষরগুলির একটি সেট বের করতে হবে যা দুটি delimiters মধ্যে অন্তর্ভুক্ত করা হয়, delimiters নিজেদের ফিরে ছাড়া।

একটি সহজ উদাহরণ সহায়ক হতে হবে:

লক্ষ্য : বক্রবন্ধনীগুলি ফেরত না দিয়ে বর্গক্ষেত্র বন্ধনীগুলির মধ্যে সাবস্ট্রিংটি বের করুন।

বেস স্ট্রিং : This is a test string [more or less]

আমি নিম্নলিখিত reg ব্যবহার করেন। প্রাক্তন।

\[.*?\]

ম্যাচ [more or less] । আমি শুধুমাত্র more or less পেতে হবে (বন্ধনী ছাড়া)।

এটা কি সম্ভব?


আপনি যদি জাভাস্ক্রিপ্ট ব্যবহার করেন, তবে ক্লিটাস দ্বারা সরবরাহিত প্রথম সমাধান , (?<=\[)(.*?)(?=\]) কাজ করবে না কারণ জাভাস্ক্রিপ্ট ল্যাব বিন্ড অপারেটরের সমর্থন করে না।

যাইহোক, দ্বিতীয় সমাধান ভাল কাজ করে, কিন্তু আপনি দ্বিতীয় মিলিত উপাদান পেতে হবে।

উদাহরণ:

var regex = /\[(.*?)\]/;
var strToMatch = "This is a test string [more or less]";
var matched = regex.exec(strToMatch);

এটা ফিরে আসবে:

["[more or less]", "more or less"]

সুতরাং, আপনার প্রয়োজন কি দ্বিতীয় মান। ব্যবহার করুন:

var matched = regex.exec(strToMatch)[1];

ফিরে:

"more or less"

আমি / এবং # মধ্যে একটি স্ট্রিং খুঁজতে চেয়েছিলেন, কিন্তু # কখনও কখনও ঐচ্ছিক। এখানে আমি regex ব্যবহার করা হয়:

  (?<=\/)([^#]+)(?=#*)

আমি bash স্ক্রিপ্টিং সঙ্গে regex ব্যবহার করে একই সমস্যা ছিল। আমি grep -o প্রয়োগ সঙ্গে পাইপ ব্যবহার করে একটি 2-পদক্ষেপ সমাধান ব্যবহার

 '\[(.*?)\]'  

আমি আজ খুশি

'\b.*\b'

স্পষ্টভাবে অন্যান্য উত্তর, কিন্তু একটি বিকল্প হিসাবে দক্ষ নয়।


এছাড়াও [] ব্যবহার অপসারণ করতে:

\[.+\]

পিএইচপি:

$string ='This is the match [more or less]';
preg_match('#\[(.*)\]#', $string, $match);
var_dump($match[1]);

[^\[] কোন অক্ষর মেলে না [।

+ 1 বা তার চেয়ে বেশি যা মিলছে না [ । এই ম্যাচ গ্রুপ তৈরি করে।

(?=\]) ইতিবাচক চেহারাটা ] । ফলাফল সহ এটি সহ ] সঙ্গে শেষ একটি গ্রুপ মেলে।

সম্পন্ন.

[^\[]+(?=\])

প্রুফ।

http://regexr.com/3gobr

সমাধান অনুরূপ নল দ্বারা প্রস্তাবিত। কিন্তু অতিরিক্ত \] প্রয়োজন হয় না। একটি অতিরিক্ত নোট হিসাবে, এটি প্রদর্শিত হচ্ছে [ ^ পরে পালাতে হবে না। পাঠযোগ্যতা জন্য, আমি এটা ছেড়ে চলে যেতে হবে।

Delimiters অভিন্ন হয় এমন পরিস্থিতিতে কাজ করে না। উদাহরণস্বরূপ "more or less"





regex