我正在寻找一个正则表达式(php)来查找/替换网页中的一些单词。但是,它不能替换所有html标签之间的单词,只能在:斜体< i >、粗体< b >和纯文本之间。
例子:
单词:“你好”(不区分大小写)
<a href="#">Hello</a> im a writer that i like to say hello everyday. <b>Hello</b> Spiderman.
Replaces:在anchor中不能replace,只有hello,< b>Hello< /b>
可以替换。
我测试了一些正则表达式,但没有一个能正常工作:
1)来自SMART SEO LINKS(WP插件)
$reg = '/(?!(?:[^<\[]+[>\]]|[^>\]]+<\/a>))\b($word)\b/Imsu';
效果不好,有时,删除内容并把符号“>”我对这个正则表达式做了一些修改,去掉“?!” 或“?:”(我不知道是什么意思),但停止工作。
2)我尝试过的其他人:
$reg = "/<([\w]+)[^>]*>\b('.$word.')\b<\/\1>/Imsu";
$reg = '/<+\s*\/\s\b('.$word.')\b[^>]\/\s>+/I';
不更换任何东西
$reg = '/<(\w+)[^>]*>\b('.$name.')\b<\/\1>/Imsu';
有时有效。
事实是,我不是正则表达式专家,我进行了几天的测试,试图创建一个新的正则表达式,但没有达到我需要的结果。
事实是替换将在 WP 插件中使用,这有时会影响模板或其他插件或 DOM 没有很好地创建
任何人都知道为什么不能正常工作?谢谢。