我有以下字符串:
Lorem ipsum Test dolor sit amet,consetetur sadipscing elitr,sed diam nonumy <a href="http://Test.com/url">Test</a> eirmod tempor invidunt ut labore et dolore magna aliquyam erat,sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd sed Test dolores et ea rebum. Stet clita kasd gubergren,no sea <a href="http://url.com">Test xyz</a> takimata sanctus est Lorem ipsum dolor sit amet.
现在我将标签之外的字符串’Test’替换为不在标签之间(例如替换为’1234′).
Lorem ipsum 1234 dolor sit amet,sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd sed 1234 dolores et ea rebum. Stet clita kasd gubergren,no sea <a href="http://url.com">Test xyz</a> takimata sanctus est Lorem ipsum dolor sit amet.
我从这个正则表达式开始:(?!< a [^>] *>)(测试)([^<])(?!< / a>)
但是有两个问题没有解决:
>文本’Test’也被替换为Tags(例如)
>标签之间的文本与搜索到的文本不完全匹配,它也会被替换(例如< a href =“http:// url”> Test xyz< / a>)
(?!<a[^>]*?>)(Test)(?![^<]*?</a>)
与zb226相同,但使用惰性匹配进行优化
此外,不建议在原始HTML上使用正则表达式.