मॉड्यूल पाठ (3/4)
वाइल्डकार्ड: बिंदु `.`
रेगेक्स में डॉट . वाइल्डकार्ड है: यह किसी भी एक से मेल खाता है
चरित्र\u2026 एक महत्वपूर्ण अपवाद के साथ: यह मेल नहीं खाता
न्यूलाइन (\n).
Pattern: c.t
Sample: cat cot cut c@t c\nt
^^^ ^^^ ^^^ ^^^तीन अक्षर: एक c, कोई भी वर्ण, एक t। बीच में कोई नई लाइन नहीं, इसलिए c\nt
मेल नहीं खाता (डिफ़ॉल्ट रूप से)।
बिंदी बेहद उपयोगी है लेकिन खतरनाक भी: इसका प्रयोग बिना अनुशासन के किया जाता है
आपकी इच्छा से अधिक कैप्चर करता है। मॉड्यूल 2 में क्वांटिफायर के साथ संयुक्त
(.*, .+?) यह 90% पैटर्न का स्रोत है जो "मेरे तरीके से काम नहीं करते हैं
अपेक्षित"।
s ध्वज: "dotAll"
s ध्वज (जिसे dotAll या सिंगल-लाइन भी कहा जाता है) के साथ बिंदु मेल खाता है
प्रत्येक वर्ण, नई पंक्ति शामिल है। उस विस्तार वाले ब्लॉक निकालने के लिए उपयोगी
एकाधिक पंक्तियाँ.
Pattern: <p>.*</p>
Flag: gs
Sample: <p>prima\nseconda</p>
^^^^^^^^^^^^^^^^^^^^^डॉट वाइल्डकार्ड की सीमाएँ और व्यवहार
बिंदु . एक शक्तिशाली वाइल्डकार्ड है, लेकिन डिफ़ॉल्ट रूप से यह न्यूलाइन वर्णों से मेल नहीं खाता (\\n)। यदि आप चाहते हैं कि बिंदु पूरी तरह से हर चीज से मेल खाए, जिसमें नई लाइनें भी शामिल हैं, तो आपको s (dotAll) ध्वज को सक्षम करना होगा। बिंदु को क्वांटिफायर (.*) के साथ जोड़ते समय सावधान रहें, क्योंकि यह बहुत अधिक पाठ (लालची व्यवहार) का उपभोग करता है।
इसे अजमाएं
कोष्ठक द्वारा सीमांकित वर्णों के प्रत्येक त्रिक को खोजें, जैसे `(एबीसी)`, `(xyz)`। 3 आंतरिक वर्णों के लिए वाइल्डकार्ड का उपयोग करें।
संकेत दिखाएँ
तीन मनमाने वर्णों के लिए तीन बिंदु. कोष्ठक मेटा-अक्षर हैं: उन्हें \\ से बचना चाहिए।
3 प्रयासों के बाद समाधान उपलब्ध है
व्यायाम की समीक्षा करें
`[INIZIO]` और `[FINE]` के बीच का ब्लॉक निकालें, जो कई पंक्तियों को फैला सकता है। आपको `s` ध्वज की आवश्यकता होगी ताकि बिंदु भी न्यूलाइन से मेल खाए, और क्वांटिफायर का 'आलसी' संस्करण (`.*?`, मॉड्यूल 2)।
संकेत दिखाएँ
एस ध्वज के बिना, बिंदु पंक्ति के अंत में रुक जाता है: इसे जोड़ें। फार्म ।*? (आलसी) मैच को पहले [FINE] पर रोक देता है।
3 प्रयासों के बाद समाधान उपलब्ध है
अतिरिक्त चुनौती
Find all 3-character sequences starting with `c` and ending with `t` (e.g. `cat`, `cot`, `c-t`).
संकेत दिखाएँ
पैटर्न 'बिंदु' का उपयोग करता है। वाइल्डकार्ड मध्य वर्ण का प्रतिनिधित्व करने के लिए।
3 प्रयासों के बाद समाधान उपलब्ध है