Ben bir etiketi içinde değilse "John Doe" değiştirmek istedim, ben bu yapardı:
$str = preg_replace('/John Doe(?![^<>]*+>)/i', $new_name, $str);
(?![^<>]*+>)
bir negatif ileri yönlü olduğunu; "her köşeli öncesinde bu nokta varsa, ilk bir ayraç değildir" diyor. Öznitelik değerleri açılı ayraçlar içerebilir beri, kusursuz değil, ama benim deneyim nadiren yapmak.
Regexes HTML ile temelden uyumsuz; Hatta lookarounds ve possessive quantifiers, genellikle gibi basitleştirerek varsayımlara dayanmak zorunda gibi preg_
suite, tarafından sunulan gelişmiş özellikler ile no angle brackets in attribute values . Ben bile çok-daha-sınırlı ereg_
fonksiyonları ile bu işi girişimi değildir.