ماڈیول اسباق (1/4)
مثبت نظر: `(?=...)`
ایک مثبت نظر (?=...) ایک صفر چوڑائی دعویٰ ہے:
یہ چیک کرتا ہے کہ ایک مخصوص پیٹرن موجودہ پوزیشن کی پیروی کرتا ہے، لیکن ** کرتا ہے۔
ان حروف کو استعمال نہ کریں۔
Pattern: \d+(?= euro)
Sample: Prezzo 100 euro, sconto 25 euro, totale 75 dollari.
^^^ ^^نظر آنے والے (?= euro) کا تقاضہ ہے کہ ہندسوں کے بعد euro، لیکن
میچ میں صرف ہندسے شامل ہیں۔ 75 dollari مماثل نہیں ہے (نہیں euro)۔
کیوں "صفر چوڑائی"
نظر آنے والے کو پوزیشن پر ایک شرط کے طور پر سوچیں، نہ کہ a کے طور پر میچ کا حصہ:
- میچ آگے دیکھنے سے پہلے رک جاتا ہے۔
- پوزیشن "میچ کے بعد" متن کا آغاز ہے جس کا جائزہ لینے والے نے کیا ہے۔
gپرچم کے ساتھ اگلی میچ کی کوشش وہاں سے دوبارہ شروع ہوگی۔
یہ اسے اقدار کو ان کے سیاق و سباق کے بغیر نکالنے کے لیے بہترین بناتا ہے: قیمتیں۔ کرنسی کے بغیر، اوقاف کے نشان سے پہلے کے الفاظ، وغیرہ۔
تلاش کی خصوصیات اور صفر چوڑائی اسکین
مثبت نظر آنے والا (?=...) اس بات کی ضمانت دیتا ہے کہ متعین پیٹرن موجودہ نقطہ کی پیروی کرتا ہے، لیکن اسکیننگ نظر آنے سے پہلے پوزیشن سے دوبارہ شروع ہوجاتی ہے۔ یہ متن کے ان حصوں کو "ہڑپ" کرنے سے روکتا ہے جو بعد کے میچوں کے لیے درکار ہو سکتے ہیں۔
اسے آزمائیں
صرف یورو کی قیمتوں کے ہندسے نکالیں ('یورو' کے بعد ہندسوں کی ترتیب)۔ میچ میں کوئی کرنسی نہیں۔
اشارہ دکھائیں۔
'یورو' کو تلاش کے اندر منتقل کریں (?= یورو): سٹرنگ میچ کا حصہ نہیں ہوگی۔
3 کوششوں کے بعد حل دستیاب ہے۔
ورزش کا جائزہ لیں۔
ہر لفظ کو فوری طور پر تلاش کریں جس کے بعد بڑی آنت ہو `:` (لیکن میچ میں بڑی آنت کو شامل کیے بغیر)۔
اشارہ دکھائیں۔
وہی منطق: `:` میچ میں نہیں ہے، لیکن یہ ایک پوزیشن کی شرط ہے۔
3 کوششوں کے بعد حل دستیاب ہے۔
اضافی چیلنج
Find every word (e.g. function name) followed immediately by an open parenthesis `(`, excluding the parenthesis from the match.
اشارہ دکھائیں۔
مثبت نظر (?=...) کے اندر \\( (کھلا ہوا قوسین) منتقل کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔