আমি নিয়মিত প্রকাশের জন্য এই দুর্দান্ত টিউটোরিয়ালটি পেয়েছি এবং "লোভী", "অনিচ্ছুক" এবং "অধিকারী" কোয়ান্টিফায়াররা কী করে তা আমি স্বজ্ঞাতভাবে বুঝতে পেরেছি, আমার বোঝার মধ্যে একটি গুরুতর গর্ত আছে বলে মনে হয়।
বিশেষত, নিম্নলিখিত উদাহরণে:
Enter your regex: .*foo // greedy quantifier
Enter input string to search: xfooxxxxxxfoo
I found the text "xfooxxxxxxfoo" starting at index 0 and ending at index 13.
Enter your regex: .*?foo // reluctant quantifier
Enter input string to search: xfooxxxxxxfoo
I found the text "xfoo" starting at index 0 and ending at index 4.
I found the text "xxxxxxfoo" starting at index 4 and ending at index 13.
Enter your regex: .*+foo // possessive quantifier
Enter input string to search: xfooxxxxxxfoo
No match found.
ব্যাখ্যায় পুরো ইনপুট স্ট্রিং খাওয়ার উল্লেখ করা হয়েছে, চিঠিগুলি গ্রাস করা হয়েছে , ম্যাচার ব্যাক আপ বন্ধ রয়েছে , "ফু" এর ডানদিকের ঘটনাটি পুনরায় সাজানো হয়েছে ইত্যাদি tions
দুর্ভাগ্যক্রমে, সুন্দর রূপক থাকা সত্ত্বেও, আমি কাকে খেয়েছি তা এখনও বুঝতে পারি না ... আপনি কি এমন একটি টিউটোরিয়াল জানেন যা নিয়মিত এক্সপ্রেশন ইঞ্জিনগুলি কীভাবে কাজ করে তা ব্যাখ্যা করে (সংক্ষেপে) ?
বিকল্পভাবে, যদি কেউ নিম্নলিখিত অনুচ্ছেদে কিছু আলাদাভাবে ব্যাখ্যা করতে পারেন, তবে এটির প্রশংসা হবে:
প্রথম উদাহরণটি লোভী কোয়ান্টিফায়ার ব্যবহার করে * "কিছু", শূন্য বা আরও অনেকবার খুঁজে পেতে, "চ" "ও" "ও" অক্ষরগুলি অনুসরণ করে। কোয়ান্টিফায়ার লোভী হওয়ায়, এক্সপ্রেশনটির। * অংশ প্রথমে পুরো ইনপুট স্ট্রিংটি খায়। এই মুহুর্তে, সামগ্রিক প্রকাশটি সফল হতে পারে না, কারণ শেষ তিনটি অক্ষর ("চ" "ও" "ও") ইতিমধ্যে ( কার দ্বারা? ) গ্রাস করা হয়েছে । সুতরাং ম্যাচার আস্তে আস্তে ( ডান থেকে বাম থেকে? ) একসময় একটি চিঠি ব্যাক করে দেয় যতক্ষণ না "ফু" এর ডানদিকের ঘটনাটি পুনঃব্যবস্থা করা না হয়ে যায় (এর অর্থ কী? ), কোন পর্যায়ে ম্যাচটি সফল হয় এবং অনুসন্ধান শেষ হয়।
দ্বিতীয় উদাহরণটি অবশ্য অনিচ্ছুক, তাই এটি প্রথমে ( কাদের দ্বারা? ) "কিছুই না" গ্রাস করে শুরু হয় । কারণ "foo বিন্যাস" STRING শুরুতে বলে মনে হচ্ছে না, এটা গেলা করতে বাধ্য এর ( যারা swallows?) প্রথম চিঠি (একটি "X"), যা 0 এবং 4. আমাদের পরীক্ষা সাজ প্রথম ম্যাচ আরম্ভ করে প্রক্রিয়া অব্যাহত ইনপুট স্ট্রিং অবসন্ন না হওয়া পর্যন্ত। এটি 4 এবং 13 এ অন্য একটি মিল খুঁজে পেয়েছে।
তৃতীয় উদাহরণটি একটি মিল খুঁজে পেতে ব্যর্থ হয়েছে কারণ কোয়ান্টিফায়ার মালিকানাধীন। এই ক্ষেত্রে, সম্পূর্ণ ইনপুট স্ট্রিংটি গ্রাস করে * * +, ( কীভাবে? ) অভিব্যক্তিটির শেষে "ফু" সন্তুষ্ট করার জন্য কিছুই রেখে যায় না। যে পরিস্থিতিতে আপনি কখনই ব্যাক ব্যাক না করে সমস্ত কিছু বাজেয়াপ্ত করতে চান এমন পরিস্থিতিগুলির জন্য একটি প্রাপ্য কোয়ান্টিফায়ার ব্যবহার করুন ( ব্যাক অফের অর্থ কী? ); ম্যাচটি তাত্ক্ষণিকভাবে খুঁজে পাওয়া যায় না এমন ক্ষেত্রে এটি সমতুল্য লোভী পরিমাণকে ছাড়িয়ে যাবে per
*
,+
এবং?
হয় লোভী। সংক্ষিপ্ত quantifiers পছন্দ*?
,+?
এবং??
হয় অলস। সম্বন্ধসূচক quantifiers পছন্দ*+
,++
এবং?+
হয় চটচটে।