मुख्य सामग्री पर जाएं
मॉड्यूल 3 · पाठ 3 का 4पाठ्यक्रम में 11/32~10 min
मॉड्यूल पाठ (3/4)

`एम` ध्वज: मल्टीलाइन

m (मल्टीलाइन) ध्वज के साथ एंकर ^ और $ का अर्थ बदल जाता है: वे अब संपूर्ण स्ट्रिंग के प्रारंभ/अंत ** नहीं हैं, बल्कि ** के प्रारंभ/अंत हैं प्रत्येक पंक्ति**. एक रेखा को \n (या आरंभ/अंत द्वारा) सीमांकित किया जाता है स्ट्रिंग).

Code
Pattern: ^Errore
Flag:    gm
Sample:  Errore: A\nInfo: B\nErrore: C
         ^^^^^^         ^^^^^^

m के बिना यह पूर्ण शुरुआत में केवल Errore से मेल खाएगा नमूना (1 मैच)। m के साथ, यह प्रत्येक पंक्ति की शुरुआत से मेल खाता है (2 मिलान)।

m बिंदु नहीं बदलता

एक आम भ्रम: m ध्वज बिंदु का अर्थ नहीं बदलता है .. बिंदु अभी भी \n से मेल नहीं खाता, यहाँ तक कि m से भी। बिंदी बनाने के लिए s फ़्लैग (मॉड्यूल 1 में शामिल) से अपनी ज़रूरत की हर चीज़ का मिलान करें।

m और s ऑर्थोगोनल हैं: आप उन्हें एक साथ उपयोग कर सकते हैं (ms), अलग से, या न ही.

मल्टीलाइन फ़्लैग और लाइन-बाय-लाइन प्रोसेसिंग

m ध्वज ^ और $ के व्यवहार को संशोधित करता है, जिससे वे संपूर्ण स्ट्रिंग के पूर्ण प्रारंभ और अंत को देखने के बजाय, एक मल्टीलाइन टेक्स्ट ब्लॉक के भीतर प्रत्येक पंक्ति की शुरुआत और अंत (\\n द्वारा सीमांकित) से मेल खाते हैं।

इसे अजमाएं

व्यायाम#regex.m3.l3.e1
प्रयास: 0लोड हो रहा है...

`ERROR` से शुरू होने वाली प्रत्येक पंक्ति ढूंढें। प्रत्येक पंक्ति को \\n से अलग किया गया है; झंडे `g` और `m` का उपयोग करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

एम ध्वज ^ को आंतरिक रेखाओं की शुरुआत से भी मेल खाता है, न कि केवल पूर्ण प्रथम वर्ण से।

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम की समीक्षा करें

व्यायाम#regex.m3.l3.e2
प्रयास: 0लोड हो रहा है...

प्रत्येक पंक्ति ढूंढें जो एक अवधि के साथ समाप्त होती है। झंडे `m` और `g` के साथ `$` एंकर का उपयोग करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

\\.$ जीएम झंडे के साथ प्रत्येक पंक्ति के अंत में अवधि से मेल खाता है, न कि केवल नमूने के अंत में।

3 प्रयासों के बाद समाधान उपलब्ध है

अतिरिक्त चुनौती

व्यायाम#regex.m3.l3.e3
प्रयास: 0लोड हो रहा है...

Find all lines in a multiline log that start exactly with the string `ID:` followed by a digit.

संपादक लोड हो रहा है...
संकेत दिखाएँ

आईडी से पहले ^ का उपयोग करें: और सुनिश्चित करें कि एम ध्वज सक्रिय है।

3 प्रयासों के बाद समाधान उपलब्ध है