মূল কন্টেন্টে যান
মডিউল 6 · 1-এর পাঠ 4কোর্সে 21/32~10 min
মডিউল পাঠ (1/4)

ইতিবাচক দৃষ্টিভঙ্গি: `(?=...)`

একটি ইতিবাচক দৃষ্টিভঙ্গি (?=...) হল একটি শূন্য-প্রস্থ দাবী: এটি পরীক্ষা করে যে একটি নির্দিষ্ট প্যাটার্ন বর্তমান অবস্থান অনুসরণ করে, কিন্তু ** করে গ্রাস করবেন না** অক্ষর।

Code
Pattern: \d+(?= euro)
Sample:  Prezzo 100 euro, sconto 25 euro, totale 75 dollari.
                ^^^                 ^^

লুকআহেড (?= euro) এর জন্য ডিজিটগুলিকে euro অনুসরণ করতে হবে, কিন্তু ম্যাচটি শুধুমাত্র সংখ্যা অন্তর্ভুক্ত করে। 75 dollari মেলে না (না euro)।

কেন "শূন্য-প্রস্থ"

লুকআহেডকে অবস্থানের শর্ত হিসেবে ভাবুন, a হিসেবে নয় ম্যাচের অংশ:

  • সামনের দিকে আগে ম্যাচ থামবে।
  • "ম্যাচের পরে" পজিশন হল টেক্সটটির শুরুর দিকে যা দেখে নেওয়া হয়েছে।
  • g পতাকার সাথে পরবর্তী ম্যাচের প্রচেষ্টা সেখান থেকে আবার শুরু হবে।

এটিকে প্রসঙ্গ ছাড়াই মান বের করার জন্য উপযুক্ত করে তোলে: দাম মুদ্রা ছাড়া, বিরাম চিহ্নের আগে শব্দ, ইত্যাদি।

লুকহেড বৈশিষ্ট্য এবং শূন্য-প্রস্থ স্ক্যান

ইতিবাচক লুকআহেড (?=...) গ্যারান্টি দেয় যে নির্দিষ্ট প্যাটার্নটি বর্তমান বিন্দুকে অনুসরণ করে, কিন্তু স্ক্যানিং লুকআহেডের আগে অবস্থান থেকে পুনরায় শুরু হয়। এটি পাঠ্যের "গ্রাহক" অংশগুলিকে প্রতিরোধ করে যা পরবর্তী ম্যাচগুলির জন্য প্রয়োজন হতে পারে।

চেষ্টা করে দেখুন

ব্যায়াম#regex.m6.l1.e1
প্রচেষ্টা: 0লোড হচ্ছে...

শুধুমাত্র ইউরো মূল্যের অঙ্কগুলি বের করুন ('ইউরো' দ্বারা অনুসরণ করা সংখ্যাগুলির ক্রম)। ম্যাচে কোন মুদ্রা নেই।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

একটি লুকআহেড (?= ইউরো) এর ভিতরে 'ইউরো' সরান: স্ট্রিংটি ম্যাচের অংশ হবে না।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম পর্যালোচনা করুন

ব্যায়াম#regex.m6.l1.e2
প্রচেষ্টা: 0লোড হচ্ছে...

একটি কোলন `:` অনুসরণ করে অবিলম্বে প্রতিটি শব্দ খুঁজুন (কিন্তু ম্যাচে কোলন অন্তর্ভুক্ত না করে)।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

একই যুক্তি: `:` মিলের মধ্যে নেই, তবে এটি একটি অবস্থানের শর্ত।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

অতিরিক্ত চ্যালেঞ্জ

ব্যায়াম#regex.m6.l1.e3
প্রচেষ্টা: 0লোড হচ্ছে...

Find every word (e.g. function name) followed immediately by an open parenthesis `(`, excluding the parenthesis from the match.

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

ইতিবাচক লুকআহেড (?=...) ভিতরে \\( (একেপড খোলা বন্ধনী) সরান।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ