मैं एक LongText कॉलम में यह डेटा है (इसलिए पंक्ति विराम बनाए रखा जाता है):पीएचपी preg_match अतीत लाइन मिलान नहीं टूट जाता है
Paragraph one
Paragraph two
Paragraph three
Paragraph four
मैं 3. मैं के माध्यम से अनुच्छेद 1 मैच के लिए कोशिश कर रहा हूँ मैं इस कोड का उपयोग कर रहा हूं:
preg_match('/Para(.*)three/', $row['file'], $m);
यह कुछ भी नहीं देता है।
preg_match('/Para(.*)one/', $row['file'], $m);
तो कोड काम करता है और मैं उचित स्ट्रिंग लौटे मिल: अगर मैं सिर्फ पैरा की पहली पंक्ति के भीतर काम करने, मेल द्वारा की कोशिश करो। मुझसे यहां क्या गलत हो रहा है?
चेतावनी: '/ s' संशोधक लालची है। यदि पाठ में एक से अधिक 'तीन' हैं, तो मैच में अंतिम घटना तक सभी पाठ शामिल होंगे। इसे रोकने के लिए '/ sU' का उपयोग करें (ऊपरी केस यू को नोट करें)। –
@ फ्रैंकफ़ोर्ट वास्तव में एक संशोधक मुद्दा नहीं है: '*' पुनरावृत्ति प्रति लालची है। एक बेहतर तरीका यह है कि इसे आलसी बनाने के लिए एक प्रश्न चिह्न डालना है: '/ पैरा (। *?) तीन/एस'। इसके अलावा, '/ यू' संशोधक लालची को रद्द नहीं करता है, लेकिन इसे उलटा करता है: '*' आलसी हो जाता है और '*? लालची बन जाता है। ओपी कोड पर कोई समस्या नहीं है, लेकिन यह एक जटिल जटिल अभिव्यक्ति में अजीब त्रुटियों को ट्रिगर कर सकती है। –