RegEx ट्रिक बुक में जोड़ने के लायक कुछ अन्य तरीके :
पहले आप अपने RegEx को संकुचित कर सकते हैं: /(<br\s*/?>)+/i
और उसके साथ बदलें <br />
(RegExP को लुकहीड्स के साथ बोझ करने की आवश्यकता नहीं है) और आप हमेशा अपने चुने हुए XHMTL लाइन ब्रेक के साथ समाप्त होंगे।
अपने RegEx को संशोधित करने के अन्य तरीके ताकि यह */
अंत टिप्पणी या ?>
अंत स्क्रिप्ट की यात्रा न करे :
- प्रॉपर्टीज क्वांटिफायर का उपयोग करें :
#(<br\s*+/?+>)+#i
- जो मूल रूप से \s*+
आपके लिए व्हाट्सएप मैच के रूप में कई के रूप में मतलब है कि वहाँ रहे हैं और इसे रखने के लिए, और /?+
अगर आप एक स्लैश पाया यह रखने के लिए!
- संलग्न करें
\s*
और /*
कैप्चर समूहों में =>#(<br(\s*)(/?)>)+#i
लाइव डेमो: http://codepad.viper-7.com/YjqUbi
और जब से हमने अधिकारपूर्ण व्यवहार को तेजी से झुकाया है सबसे तेज RegEx जो कि टिप्पणी की समस्या को भी दरकिनार करता है: समझाया गया डेमो है#(<br\s*+/?+>)++#i
के रूप में मुश्किल स्थितियों में टिप्पणी करने के लिए
जब आप कोड को बदल नहीं सकते हैं, या पहले से ही एक बहुस्तरीय टिप्पणी का उपयोग किया है और:
1. एक nowdoc का उपयोग करें :
$string='Hello<br>World<br><br />World<br><br><br>Word!';
<<<'comment'
$string = preg_replace('#(<br\s*/?>)+#i', '<br />', $string);
comment;
लाइव कोड: http://codepad.viper-7.com/22uOtV
नोट: एक nowdoc एक के समान है हियरडॉक लेकिन यह सामग्री पार्स नहीं करता है और यह होनी है प्रारंभ सीमांकक में संलग्न '
एकल उद्धरण '
( ध्यान दें कि न खत्म होने वाली सीमांकक idented नहीं किया जा सकता , द्वारा पालन किया जाना चाहिए ;
और एक नई लाइन ! )
2. एक गोटो के साथ कोड पर कूदो :
$string='Hello<br>World<br><br />World<br><br><br>Word!';
goto landing;
$string = preg_replace('#(<br\s*/?>)+#i', '<br />', $string);
landing:
लाइव उदाहरण: http://codepad.viper-7.com/UfqrIQ
3. के साथ if(false)
या कोड पर कूद if(0)
:
$string='Hello<br>World<br><br />World<br><br><br>Word!';
if(0){
$string = preg_replace('#(<br\s*/?>)+#i', '<br />', $string);
}
टेस्ट: http://codepad.viper-7.com/wDg5H5