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

পিছনে তাকান: `(?<=...)` `(?<!...)`

পেছন দিকে তাকান হল লুকহেডদের আয়নার প্রতিচ্ছবি: তারা আগে দেখায় বর্তমান অবস্থান, এখনও শূন্য-প্রস্থ।

  • (?<=...) -- পজিটিভ লুক বিহাইন্ড: প্যাটার্নটি অবশ্যই আগে থাকবে।
  • (?<!...) -- নেতিবাচক লুক বিহাইন্ড: প্যাটার্নটি অবশ্যই আগে থাকবে না।
Code
Pattern: (?<=\$)\d+
Sample:  Costo $100, sconto -25, totale $75.
                ^^^                  ^^

$ ম্যাচে নেই, কিন্তু একটি শর্ত হিসেবে কাজ করে: শুধুমাত্র সংখ্যা পূর্বে ডলার চিহ্নের মিল।

নেতিবাচক দৃষ্টিতে

Code
Pattern: (?<!\w)\d+
Sample:  Codice abc123 e numero 456.
                              ^^^

(?<!\w) এর প্রয়োজন যে সংখ্যার আগে কোনো শব্দের অক্ষর থাকবে না: abc123 বাদ দেওয়া হয়েছে (123 এর আগে c, একটি \w), 456 ম্যাচ আছে (আগে একটি স্থান আছে)।

মূল পার্থক্য বনাম নন-ক্যাপচারিং গ্রুপ

Code
\\$\\d+         matches "$100": the match includes the dollar sign.
(?<=\\$)\\d+    matches "100":  the match contains ONLY the digits.

আপনি যদি উপসর্গ ছাড়াই "পরিষ্কার" মান বের করতে চান, পিছনে দেখুন সঠিক পছন্দ।

জাভাস্ক্রিপ্টে সামঞ্জস্যের পিছনে দেখুন

পজিটিভ (?<=...) এবং নেতিবাচক (?<!...) বর্তমান অবস্থানের আগে কী আছে তা দেখুন। জাভাস্ক্রিপ্টে, তারা ES2018 থেকে শুরু করে সমর্থিত; পুরানো ব্রাউজার বা লিগ্যাসি Node.js ইঞ্জিনে, তারা সিনট্যাক্স সংকলন ত্রুটির কারণ হবে।

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

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

পাঠ্যের দাম থেকে শুধুমাত্র সংখ্যাসূচক পরিমাণ ($ চিহ্ন ছাড়া) বের করুন।

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

একটি ইতিবাচক চেহারার পিছনে \\$ সরান (?<=\\$): একটি অবস্থান শর্ত, ম্যাচের অংশ নয়।

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

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

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

অক্ষর বা অঙ্কের পূর্বে না থাকা অঙ্কগুলির প্রতিটি ক্রম খুঁজুন (অর্থাৎ, 'বিচ্ছিন্ন' সংখ্যা, কোডের অংশ যেমন `abc123` নয়)।

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

আগে একটি অক্ষর বা অঙ্ক থাকলে বাদ দিতে একটি নেতিবাচক চেহারার পিছনে (?<!\\w) ব্যবহার করুন।

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

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

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

Find only the digits of negative numbers (digits preceded by the `-` sign), excluding the minus sign from the match.

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

বিয়োগ চিহ্নটি সরান - পিছনে একটি ইতিবাচক চেহারার ভিতরে (?<=-)।

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