Düzenli ifadeler - opsiyonel özelliklere sahip bütün çapa maç

1 Cevap php

Sırtımda sonunda bir wysiwyg editörü var ve ben yazdım ilk düzenli ifadeyi kadar açma edilir. Bu preg_replace() kullanarak, PHP4'te olduğunu. Ben URI ve bağlantılı metin yakalama ediyorum.

@<a\shref=\"http[s]?://([^\"]*)\"[]>(.*)<\/a>@siU

Istemci yeni bir pencerede açmak için tüm harici linkler istediğini, böylece tüm (umarım) dış bağlantıları bulmak için kullandığı ifade, ama iç, sayfa bağlantıları çapa bırakın, vb

Ben kullanıcı linke kalın seçerse wysiwyg editörü aynı zamanda style="font-weight: bold" ekler gerçekleşmiştir. Ben sadece son zamanlarda bu sorun hakkında gitmek nasıl emin değilim bu yüzden düzenli ifadeler öğrenmeye başladım.

Herhangi bir yardım çok takdir!

1 Cevap

bu bunu tamam uymalıdır:

/<a\s+([^>]*)href="https?:\/\/([^"]*)"(.*?)>(.*?)<\/a>/

Burada yararlı bir şey tembel maç. *? bu açgözlü düzenli maç, karşıt olarak, sadece kadar kesinlikle ihtiyaç duyması gibi maç olacak demektir.

Bu metinle, göstermek için:

a b c d a b c d

Bu regexes farklı sonuçlar olacaktır:

/a.*c/    selects: "a b c d a b c"
/a.*?c/   selects: "a b c"