正则表达式针对HTML中的特定单词
我是RegEx的新手,一直无法弄清楚可能是一个简单问题。我需要匹配HTML块中特定单词的列表。正则表达式针对HTML中的特定单词
例如,我有一个单词列表:
- ASDF
- ZXCV
- QWER
而下面的HTML:
<p>ASDF jumped over the ZXCV of QWER.</p>
我我正在使用与RegEx数组匹配的preg_replace_callback()
,例如/\bASDF\b/
,但那只会找到ASDF
,它们被空格包围,并且不会考虑符号,例如标记或标点的开始/结束。
我一直盯着RegEx床单几个小时,而我一直在这一个。任何建议,你可以给我开始将不胜感激。感谢您的时间。
\bASDF\b
将匹配
<p>ASDF</p>
<p>foo ASDF bar</p>
<p> ASDF></p>
<p>foo ASDF.</p>
你有什么麻烦不匹配?
您想将HTML标签排除在等式之外,只能与文本节点一起使用。
因此,剥离HTML或使用类似DOMDocument的内容来解析元素,然后在文本节点上使用正则表达式。
另外,\b
应该考虑>
的边界,因为它不是一个单词字符。
你想匹配任何这些单词或全部吗?如果有的话,你可以做(ASDF | ZXCV | QWER)。如果是这些话,匹配所有单词的标准是什么?
查看此资源http://www.regular-expressions.info我强烈建议您拿起本书的副本,Mastering Regular Expressions,Jeffrey Friedl,http://regex.info。
这非常有帮助,谢谢! – Brad 2011-05-27 01:30:38
啊哈!谢谢你的帮助塞思。我一直在抨击这个问题,事实证明问题不在于RegEx部分!我将结束这个问题,因为我真正的问题完全没有解决,但非常感谢你的帮助! – Brad 2011-05-27 01:22:26
计划,但除非我再等几分钟,否则不会让我。 – Brad 2011-05-27 01:31:13