我正在寻找正则表达式(php)来查找/替换网页中的某些单词。但是,它不能替换所有html标签之间的单词,只能在以下内容之间进行替换:斜体< i>,粗体< b>和纯文本。正则表达式替换网页中的单词
实施例:
词: “你好”(不区分大小写)
<a href="#">Hello</a> im a writer that i like to say hello everyday. <b>Hello</b> Spiderman.
替代:在锚着的更换,仅你好和< b>Hello< /b>
可以被替换。
我测试了一些正则表达式,但没有正常工作:
1)从SMART SEO链接(WP插件)
$reg = '/(?!(?:[^<\[]+[>\]]|[^>\]]+<\/a>))\b($word)\b/Imsu';
不能很好地工作,有时,删除该内容,并把simbol“>” 我对这个正则表达式做了一些修改,删除了“?!”或“?:”(我不知道是什么意思),但停止工作。
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心不是很好创建
任何人有任何想法,为什么不能正常工作?谢谢。这些模式的
Id'为此使用DOM,也许是http://simplehtmldom.sourceforge.net/。 – elclanrs 2013-05-07 10:52:52