से मेल खाता है मुझे यकीन है कि यह मामूली बात है, लेकिन मैं एक regex कि ध्यान में रखा जाता है कि इस विषय को कई पंक्तियों के होते हैं बनाने में असमर्थ हूँ। "m
" एक के लिए संशोधक काम नहीं कर रहा है। आप 's' संशोधक कोशिशphp preg_replace regex कि कई पंक्तियों
उत्तर
किया? मतलब 'एक लाइन के रूप में व्यवहार करें। 'एम'^और $ लाइन की शुरुआत और अंत का उपयोग करने के लिए सक्षम बनाता है।
आह आईसी नीचे दिए गए लिंक को पढ़ने, कल कि @work की कोशिश करेंगे। एक और सवाल हालांकि, मैं न्यूलाइन, रिक्त स्थान या टैब से कैसे मेल करूं? अब तक मैं "[\\ n \\ t] *" के साथ आया हूं, यह सही है? –
बस '\ s' का उपयोग करें, जिसका अर्थ है किसी भी स्पेस कैरेक्टर। –
\ s मैचों 'व्हाइट स्पेस' (अर्थात् \ t और space) और मेरा मानना है कि इसमें \ n के साथ-साथ उपयोग किए जाने पर भी शामिल हो सकता है। – ziya
मैक्सवेल ट्रॉय मिल्टन राजा सही है, लेकिन उसके बाद से इस सवाल का जवाब एक सा कम है, मैं इस रूप में अच्छी तरह से पोस्ट और वर्णन करने के लिए कुछ उदाहरण प्रदान करेंगे।
पहले, डिफ़ॉल्ट रूप से .
मेटा चरित्र पंक्ति विराम मेल नहीं खाता। PHP के स्वाद सहित कई रेगेक्स कार्यान्वयन के लिए यह सच है। जिसके अनुसार, पाठ ले:
$text = "Line 1\nLine 2\nLine 3";
और regex
'/.*/'
तो regex केवल Line 1
से मेल खाएगी। खुद के लिए देखें:
preg_match('/.*/', $text, $match);
echo $match[0]; // echos: 'Line 1'
.*
के बाद से \n
(नई लाइन वर्ण) पर "मिलान बंद हो जाता है"।
preg_match('/.*/s', $text, $match);
echo $match[0]; // echos: 'Line 1\nLine 2\nLine 3'
अब एम-संशोधक (बहु लाइन) के बारे में: आप इसे से मेल पंक्ति के रूप में अच्छी तरह से टूट जाता है, अपने regex के अंत में एस संशोधक (उर्फ डॉट-सभी संशोधक) से संलग्न देना चाहते हैं: जो ^
न केवल इनपुट स्ट्रिंग की शुरुआत से मेल खाता है, बल्कि प्रत्येक पंक्ति की शुरुआत भी करेगा। $
के साथ ही: यह $
न केवल इनपुट स्ट्रिंग के अंत से मेल खाता है, बल्कि प्रत्येक पंक्ति का अंत भी देगा।
एक उदाहरण:
$text = "Line 1\nLine 2\nLine 3";
preg_match_all('/[0-9]$/', $text, $matches);
print_r($matches);
जो केवल 3 (इनपुट के अंत में) से मेल खाएगी। लेकिन:
लेकिन एम-संशोधक सक्षम करने से:
$text = "Line 1\nLine 2\nLine 3";
preg_match_all('/[0-9]$/m', $text, $matches);
print_r($matches);
सब (एकल) अंक प्रत्येक पंक्ति के अंत में ('1', '2' और '3') मिलान किया जाता है।
+1 शानदार जवाब – blak3r
- 1. PHP preg_replace
- 2. PHP preg_replace फ़ंक्शन
- 3. PHP preg_replace \
- 4. PHP preg_replace - कुंजी
- 5. मैच कई पंक्तियों
- 6. शैल PHP के preg_replace()
- 7. PHP preg_replace: स्ट्रिंग
- 8. preg_replace
- 9. PHP में एक सशर्त preg_replace है?
- 10. कई पंक्तियों
- 11. preg_replace
- 12. php regex
- 13. preg_replace
- 14. कई समूह एकल regex
- 15. php regex
- 16. php regex
- 17. preg_replace SEG
- 18. preg_replace
- 19. php preg_replace की जगह लाइन तोड़ने
- 20. PHP फ़ंक्शन regex
- 21. php regex सत्यापन
- 22. सरल preg_replace
- 23. एक PHP regex
- 24. एचटीएमएल तालिका हेडर कई पंक्तियों
- 25. एक regex कि 00.00
- 26. Mysql उत्प्रेरक लूप कई पंक्तियों
- 27. सही तरह से, कई पंक्तियों
- 28. @ (at) प्रतीकों preg_replace फ़ंक्शन
- 29. एचटीएमएल PHP में एक regex का उपयोग कर
- 30. क्या REGEX PHP से Python
क्या आप सकारात्मक हैं रेगेक्स सही है? – Romain
उपयोग MSU विस्तार के लिए http://zendf.wordpress.com/2012/02/08/php-preg_match-multi-line-match/ – Tofeeq