مرکزی مواد پر جائیں
ماڈیول 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 کوششوں کے بعد حل دستیاب ہے۔