ماڈیول اسباق (3/4)
پیچھے دیکھو: `(?<=...)` (?<!...)`
پیچھے دیکھو نظر آنے والوں کی آئینہ دار تصویر ہیں: وہ پہلے نظر آتے ہیں موجودہ پوزیشن، اب بھی صفر چوڑائی۔
(?<=...)-- مثبت نظر کے پیچھے: پیٹرن کا پہلے ہونا ضروری ہے۔(?<!...)-- منفی نظر کے پیچھے: پیٹرن سے پہلے نہیں ہونا چاہیے۔
Pattern: (?<=\$)\d+
Sample: Costo $100, sconto -25, totale $75.
^^^ ^^$ میچ میں نہیں ہے، لیکن حالت کے طور پر کام کرتا ہے: صرف ہندسے
پہلے ڈالر کے نشان کے میچ سے۔
پیچھے منفی نظر
Pattern: (?<!\w)\d+
Sample: Codice abc123 e numero 456.
^^^(?<!\w) کا تقاضہ ہے کہ ہندسوں سے پہلے کوئی لفظ حرف نہ ہو:
abc123 کو خارج کر دیا گیا ہے (123 سے پہلے c، ایک \w)، 456 مماثلتیں (پہلے
ایک جگہ ہے)۔
کلیدی فرق بمقابلہ نان کیپچرنگ گروپ
\\$\\d+ matches "$100": the match includes the dollar sign.
(?<=\\$)\\d+ matches "100": the match contains ONLY the digits.اگر آپ کو سابقہ کے بغیر "صاف" قدر نکالنے کی ضرورت ہے، تو پیچھے دیکھو صحیح انتخاب ہے.
جاوا اسکرپٹ میں مطابقت کو پیچھے دیکھیں
مثبت (?<=...) اور منفی (?<!...) پیچھے دیکھ کر چیک کریں کہ موجودہ پوزیشن سے پہلے کیا ہے۔ JavaScript میں، وہ ES2018 سے سپورٹ کر رہے ہیں؛ پرانے براؤزرز یا میراثی Node.js انجنوں میں، وہ نحو کی تالیف کی غلطیوں کا سبب بنیں گے۔
اسے آزمائیں
متن میں قیمتوں سے صرف عددی رقم ($ کے نشان کے بغیر) نکالیں۔
اشارہ دکھائیں۔
\\$ کو ایک مثبت نظر کے پیچھے منتقل کریں (?<=\\$): پوزیشن کی شرط، میچ کا حصہ نہیں۔
3 کوششوں کے بعد حل دستیاب ہے۔
ورزش کا جائزہ لیں۔
ہندسوں کی ہر ترتیب تلاش کریں جو کسی حرف یا ہندسے سے پہلے نہ ہو (یعنی 'الگ تھلگ' نمبرز، کوڈ کے حصے نہیں جیسے `abc123`)۔
اشارہ دکھائیں۔
جب اس سے پہلے کوئی حرف یا ہندسہ ہو تو اسے خارج کرنے کے لیے ایک منفی نظر (?<!\\w) استعمال کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔
اضافی چیلنج
Find only the digits of negative numbers (digits preceded by the `-` sign), excluding the minus sign from the match.
اشارہ دکھائیں۔
مائنس کے نشان کو منتقل کریں - ایک مثبت نظر کے اندر (?<=-)۔
3 کوششوں کے بعد حل دستیاب ہے۔