ماڈیول اسباق (2/4)
منفی نظر: `(؟!...)`
منفی نظریہ (?!...) مثبت نظر آنے والی تاریک بہن ہے:
اس کا تقاضا ہے کہ دیا گیا پیٹرن موجودہ پوزیشن کی پیروی نہ کرے۔ یہ ہے
پھر بھی صفر چوڑائی: کوئی حرف استعمال نہیں کیا جاتا ہے۔
Pattern: \d+(?! euro)
Sample: Prezzo 100 euro, sconto 25 euro, totale 75 dollari.
^^صرف 75 میچز، کیونکہ یہ ہندسوں کی واحد ترتیب ہے جس کے بعد نہیں
euro ہندسوں 100 اور 25 کے بعد euro ہیں اور ہیں
خارج کر دیا گیا
عام منفی نظر آنے والے پیٹرن
^(?!.*errore).*$-- ایک سطر جس میں لفظ "غلطی" شامل نہیں ہے۔\b(?!the\b)\w+\b-- ایک ایسا لفظ جوtheنہیں ہے۔(?!\s)-- موجودہ پوزیشن خالی جگہ نہیں ہے (ایک "ٹرم" کے طور پر مفید ہے)۔
Pattern: ^(?!.*\.bak$).*$
Sample (multiline with flag m):
foto.jpg
backup.bak
documento.txt
Match: foto.jpg, documento.txt (excludes backup.bak)منفی نظر کے ذریعے ایڈوانسڈ اخراج
منفی نظر (?!...) خارج کرنے کی منطق کو نافذ کرنے کے لیے ضروری ہے (جیسے اس بات کی تصدیق کرنا کہ پاس ورڈ میں لغت کے الفاظ نہیں ہیں یا یہ کہ شناخت کنندہ کوئی محفوظ مطلوبہ لفظ نہیں ہے جیسے class یا function)۔
اسے آزمائیں
ہر نمبر کو تلاش کریں جس کے بعد 'یورو' نہ ہو (لہذا یورو کی قیمتوں کو چھوڑ کر)۔
اشارہ دکھائیں۔
'فالو نہیں کرنا چاہیے' کہنے کے لیے (؟! ...) استعمال کریں۔ ` یورو` ترتیب کے بعد ظاہر نہیں ہونا چاہئے۔
3 کوششوں کے بعد حل دستیاب ہے۔
ورزش کا جائزہ لیں۔
کم از کم 3 حروف کا ہر وہ لفظ تلاش کریں جو 'دی' نہ ہو (کیس غیر حساس)۔
اشارہ دکھائیں۔
\\b کے فوراً بعد ایک منفی نظر (?!the\\b) کھولیں جس میں صرف لفظ شامل نہیں ہے۔
3 کوششوں کے بعد حل دستیاب ہے۔
اضافی چیلنج
Find all words consisting of letters that do not contain the letter `x` at any position (e.g. match `test`, `game` but not `extra`, `box`).
اشارہ دکھائیں۔
لفظ باؤنڈری \\b کے بالکل بعد منفی نظر کا استعمال کریں (?!\\w*x)۔
3 کوششوں کے بعد حل دستیاب ہے۔