রেজেক্স: সামান্যতম সম্ভাব্য ম্যাচ বা নংগ্রাডি ম্যাচ


উত্তর:


195

.*বা মত নিয়মিত প্রকাশের জন্য .+, একটি প্রশ্ন চিহ্ন যুক্ত করুন ( .*?বা .+?) যথাসম্ভব কম অক্ষরের সাথে মেলে। Sectionচ্ছিকভাবে কোনও বিভাগের সাথে (?:blah)?মেলাতে তবে একেবারে প্রয়োজনীয় না হলে মিল না করা, এর মতো কিছু ব্যবহার করুন (?:blah){0,1}?। পুনরাবৃত্তি ম্যাচের জন্য (হয় {n,}বা {n,m}সিনট্যাক্স ব্যবহার করে ) যতটা সম্ভব সংখ্যক ম্যাচের চেষ্টা করার জন্য একটি প্রশ্ন চিহ্ন যুক্ত করুন (যেমন {3,}?বা {5,7}?)।

নিয়মিত এক্সপ্রেশন কোয়ান্টিফায়ারগুলিতে ডকুমেন্টেশনও সহায়ক হতে পারে।


7
আমি জানি না, যদি আমি এই ভুল বোঝাবুঝির মধ্যে কেবল একজনই হয়ে থাকি তবে এটি লক্ষ্য করা জরুরী: যদিও অ-লোভী অপারেটর যথাসম্ভব কম চরিত্রের সাথে মিলবে, তবে এটি এখনও ম্যাচের মতো নয় বলে মনে হচ্ছে জন্য। "যতটা সম্ভব চরিত্র" RegEx স্ট্যান্ডার্ড সম্পর্কিত "সংক্ষিপ্ততম সম্ভব ম্যাচের" সাথে সমান হয় না। আমার মন্তব্যের নীচে উত্তরটি দেখুন: abcabkএবং এর সাথে a.+?k, RegEx পুরো স্ট্রিংয়ের সাথে মিলবে।
ফাইনফুট

লাইন 2 "তবে একেবারে প্রয়োজনীয় না হলে মিলে না যাওয়া": এর অর্থ কী?
বৃষ্টি হচ্ছে


45

লোভহীন অপারেটরটির অর্থ সংক্ষিপ্ততম ম্যাচটি নয়:

abcabk

a.+?k শুধুমাত্র শেষ তিনটি চিহ্নের পরিবর্তে পুরো স্ট্রিংটির (এই উদাহরণে) মিলবে।

আমি এর পরিবর্তে প্রকৃততম ক্ষুদ্রতম ম্যাচটি খুঁজে পেতে চাই।

' a' এর জন্য এটি সর্বশেষ সম্ভাব্য ম্যাচটি এখনও সমস্ত ম্যাচের জন্য মঞ্জুরি দেয় k

আমি অনুমান করি যে এটি করার একমাত্র উপায় হ'ল:

a[^a]+?k


4
অথবা বিপরীত ক্রমে অনুসন্ধান করুন, শেষে শুরু হওয়া, যখন ম্যাচগুলি নেস্ট করা হয়: "(আব (অবেক) বি কে)"।
এলবোগার্ড্ট

7
@ এলবোগার্ড কীভাবে একজন বিপরীত ক্রমে অনুসন্ধান করবে? এটি পাবেন না
আজফরাফি

4
@ এলবোগার্ড্ট এখনও প্রশ্ন উন্মুক্ত: বিপরীত ক্রমে কীভাবে একজন অনুসন্ধান করবে? বলুন আমি পেতে চাই cab। যদি আমার ইনপুট হয় caaacabএবং আমি a.*?bএটি অনুসন্ধান করি তবে ভিতরে সংক্ষিপ্ত মিলের পরিবর্তে পুরো স্ট্রিংটি ফিরে আসবে। আমি কীভাবে পিছন থেকে সন্ধান করব b?
সি

4
স্ট্রিংটি বিপরীত করুন, তারপরে পুনরায় প্রয়োগ করুন
জোনাথন অ্যালেন

4
এটি অত্যন্ত সহায়ক। আমার মতো লোকেরা এখানে কী ঘটছে তা বোঝার চেষ্টা করছেন জেনেরিক ফর্মটি START[^START]*?END(যেখানে START এবং সমাপ্তি আপনার শুরু এবং শেষ চরিত্রের রেজিক্স)। এর মূল অর্থ "START থেকে শেষ পর্যন্ত যে কোনও কিছুর সাথে মেলে যেখানে
অন্তর্রের
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.