ماڈیول اسباق (3/4)
وائلڈ کارڈ: ڈاٹ `.`
ریجیکس میں ڈاٹ . وائلڈ کارڈ ہے: یہ کسی بھی سنگل سے مماثل ہے
کردار\u2026 ایک اہم استثناء کے ساتھ: یہ ** سے مماثل نہیں ہے۔
نئی لائن** (\n)۔
Pattern: c.t
Sample: cat cot cut c@t c\nt
^^^ ^^^ ^^^ ^^^تین حروف: ایک c، کوئی بھی حرف، ایک t۔ درمیان میں کوئی نئی لائن نہیں، لہذا c\nt
مماثل نہیں ہے (بطور ڈیفالٹ)۔
ڈاٹ انتہائی مفید ہے لیکن خطرناک بھی ہے: اسے نظم و ضبط کے بغیر استعمال کیا جاتا ہے۔
آپ کے ارادے سے زیادہ پکڑتا ہے۔ ماڈیول 2 میں کوانٹیفائرز کے ساتھ مل کر
(.*, .+?) یہ 90% پیٹرن کا ماخذ ہے کہ "میرے طریقے سے کام نہیں کرتا
متوقع"
s پرچم: "dotAll"
s پرچم کے ساتھ (جسے ڈاٹ آل یا سنگل لائن بھی کہا جاتا ہے) ڈاٹ مماثل ہے
ہر کردار، نئی لائن شامل ہے۔ اس دورانیے والے بلاکس کو نکالنے کے لیے مفید ہے۔
متعدد لائنیں.
Pattern: <p>.*</p>
Flag: gs
Sample: <p>prima\nseconda</p>
^^^^^^^^^^^^^^^^^^^^^ڈاٹ وائلڈ کارڈ کی حدود اور برتاؤ
ڈاٹ . ایک طاقتور وائلڈ کارڈ ہے، لیکن بطور ڈیفالٹ یہ نئی لائن کے حروف سے میل نہیں کھاتا (\\n)۔ اگر آپ چاہتے ہیں کہ ڈاٹ بالکل ہر چیز سے مماثل ہو، بشمول نئی لائنز، آپ کو s (dotAll) پرچم کو فعال کرنا ہوگا۔ ڈاٹ کو کوانٹیفائرز (.*) کے ساتھ جوڑتے وقت محتاط رہیں، کیونکہ یہ بہت زیادہ متن استعمال کرتا ہے (لالچی سلوک)۔
اسے آزمائیں
قوسین کے ذریعے محدود کردہ حروف کا ہر ٹرپلٹ تلاش کریں، جیسے `(abc)`, `(xyz)`۔ 3 اندرونی حروف کے لیے وائلڈ کارڈ استعمال کریں۔
اشارہ دکھائیں۔
تین صوابدیدی حروف کے لیے تین نقطے۔ قوسین میٹا کریکٹرز ہیں: انہیں \\ سے بچنا ضروری ہے۔
3 کوششوں کے بعد حل دستیاب ہے۔
ورزش کا جائزہ لیں۔
`[INIZIO]` اور `[FINE]` کے درمیان بلاک کو نکالیں، جو متعدد لائنوں پر پھیل سکتا ہے۔ آپ کو `s` پرچم کی ضرورت ہوگی تاکہ ڈاٹ بھی نئی لائنوں سے مماثل ہو، اور کوانٹیفائر کے 'سست' ورژن (`.*؟`، ماڈیول 2)۔
اشارہ دکھائیں۔
s پرچم کے بغیر، ڈاٹ لائن کے آخر میں رک جاتا ہے: اسے شامل کریں۔ فارم .*؟ (سست) میچ کو پہلے [FINE] پر روکتا ہے۔
3 کوششوں کے بعد حل دستیاب ہے۔
اضافی چیلنج
Find all 3-character sequences starting with `c` and ending with `t` (e.g. `cat`, `cot`, `c-t`).
اشارہ دکھائیں۔
پیٹرن ڈاٹ کا استعمال کرتا ہے۔ وائلڈ کارڈ کے درمیانی کردار کی نمائندگی کرنے کے لیے۔
3 کوششوں کے بعد حل دستیاب ہے۔