Ben HTML büyük bloklar üzerinde arama yapmak ve değiştirme işlemleri için bir ihtiyaç var. Ben (URL'ler gibi) bir html etiketi parçası olan şeyi değiştirmek istemiyorum - Ben de html etiketleri DIŞ adresler değiştirmek istemiyorum. Ben html içinde olmayan bir kelime eşleştirme için kısmi bir çözüm var (src):
word(?!([^<]+)?>)
regex dostum da bu aynı maç olacağını söylerken:
(?!([^<]+)?>)word
bu yüzden, yapılacak tek şey sol bu kelime bir url gibi görünen bir dize parçası olmadığından emin olun - bu böyle:
(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]
Bu mümkün ise emin değilim, amacım arama ve başka bir şey operasyonları değiştirin izin verirken, metinde mevcut, ve içeriğin html parçası olan adresler korumak için:
Ideal çözüm KÖPEK maç ve aşağıda gösterildiği gibi CAT ile yerini alacak
<h1>DOG</h1> -> <h1>CAT</h1>
<h1 class='DOG'>DOG</h1> -> <h1 class='DOG'>CAT</h1>
<p class='DOG'>DOG: http://www.DOG.com/DOGfood.html DOGfood is delicious.</p> -> <p class='DOG'>CAT: http://www.DOG.com/DOGfood.html CATfood is delicious.</p>
Verimlilik için bonus puan, benim fikir sonunda neredeyse duyuyorum.