RegEx hile kitabına eklemeye değer diğer birkaç yol :
Öncelikle RegEx için kompakt olabilir: /(<br\s*/?>)+/i
ve ile değiştirin<br />
önce RegEx'inizi (RegExP'i yönlendirme ile yüklemeye gerek yoktur) ve her zaman seçtiğiniz XHMTL satır sonu ile sonuçlanırsınız.
RegEx'inizi */
son yorumu veya ?>
bitiş komut dosyasını açmayacak şekilde değiştirmenin diğer yolları :
- İyileştirici nicelik belirticiler kullanın :
#(<br\s*+/?+>)+#i
- temelde \s*+
beyaz boşluk eşleştiği kadar bulduysanız ve tutarsanız ve/?+
eğer bir eğik çizgi bulursanız saklayın!
- Kapsama
\s*
ve /*
yakalama gruplarında =>#(<br(\s*)(/?)>)+#i
Canlı demolar: http://codepad.viper-7.com/YjqUbi
Biz iyelik davranışı da yorum yapma sorunu olduğunu atlar olduğunu en hızlı RegEx eğilip beri: demo açıkladı#(<br\s*+/?+>)++#i
Zor durumlarda yorum yapmaya gelince
Kodu değiştiremediğinizde veya zaten çok satırlı bir yorum kullandığınızda ve:
1. nowdoc kullanın :
$string='Hello<br>World<br><br />World<br><br><br>Word!';
<<<'comment'
$string = preg_replace('#(<br\s*/?>)+#i', '<br />', $string);
comment;
Canlı kod: http://codepad.viper-7.com/22uOtV
Not: Bir Yorumlu metin bir benzer bir yorumlu metin ancak içeriğe ayrıştırmak yok ve var olması gerekiyor yolvermeye ayırıcı içine '
tek tırnak '
( not olduğunu biten sınırlayıcı idented edilemez , takip etmelidir ;
ve yeni hat ! )
2. Bir goto ile kodun üzerinden atlayın :
$string='Hello<br>World<br><br />World<br><br><br>Word!';
goto landing;
$string = preg_replace('#(<br\s*/?>)+#i', '<br />', $string);
landing:
Canlı örnek: http://codepad.viper-7.com/UfqrIQ
3. if(false)
veya ile kodun üzerinden atlayın if(0)
:
$string='Hello<br>World<br><br />World<br><br><br>Word!';
if(0){
$string = preg_replace('#(<br\s*/?>)+#i', '<br />', $string);
}
Test: http://codepad.viper-7.com/wDg5H5