Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php HTML中特定单词的正则表达式_Php_Regex - Fatal编程技术网

Php HTML中特定单词的正则表达式

Php HTML中特定单词的正则表达式,php,regex,Php,Regex,我对RegEx还不熟悉,还没有弄清楚什么可能是一个简单的问题。我需要匹配HTML块中的特定单词列表 例如,我有一个单词列表: ASDF ZXCV QWER 以及以下HTML: ASDF跳过了QWER的ZXCV。 我正在使用正则表达式数组来匹配preg\u replace\u callback(),例如/\bASDF\b/,但这只会发现ASDF被空格包围,并且不考虑符号,例如标记或标点的开头/结尾 我盯着RegEx表看了好几个小时了,我被这张卡住了。如果您能给我任何关于开始的建议,我将不胜感激

我对RegEx还不熟悉,还没有弄清楚什么可能是一个简单的问题。我需要匹配HTML块中的特定单词列表

例如,我有一个单词列表:

  • ASDF
  • ZXCV
  • QWER
以及以下HTML:

ASDF跳过了QWER的ZXCV。

我正在使用正则表达式数组来匹配
preg\u replace\u callback()
,例如
/\bASDF\b/
,但这只会发现
ASDF
被空格包围,并且不考虑符号,例如标记或标点的开头/结尾

我盯着RegEx表看了好几个小时了,我被这张卡住了。如果您能给我任何关于开始的建议,我将不胜感激。谢谢你抽出时间

\bASDF\b
将匹配

<p>ASDF</p>
<p>foo ASDF bar</p>
<p>&nbsp;ASDF&gt;</p>
<p>foo ASDF.</p>
ASDF

foo-ASDF酒吧

ASDF

foo ASDF

你有什么不匹配的问题

将匹配

<p>ASDF</p>
<p>foo ASDF bar</p>
<p>&nbsp;ASDF&gt;</p>
<p>foo ASDF.</p>
ASDF

foo-ASDF酒吧

ASDF

foo ASDF


您在不匹配时遇到了什么问题?

您希望将HTML标记从等式中去掉,只处理文本节点

因此,去掉HTML或使用类似DOMDocument的东西来解析元素,然后在文本节点上使用正则表达式


< > >代码> > b>代码>应考虑<代码> >代码>边界,因为它不是一个单词字符。

您想从等式中取出HTML标记,只与文本节点一起工作。

因此,去掉HTML或使用类似DOMDocument的东西来解析元素,然后在文本节点上使用正则表达式


此外,<代码> \b>代码>应考虑<代码> >代码>边界,因为它不是一个单词字符。

你想匹配这些单词中的任何一个或全部吗?如果有,您可以直接执行(ASDF | ZXCV | QWER)。如果是所有这些单词,那么匹配所有单词的标准是什么


查看此资源,我强烈建议您选择Jeffrey Friedl的《掌握正则表达式》一书。

您想匹配这些单词中的任何一个还是所有单词?如果有,您可以直接执行(ASDF | ZXCV | QWER)。如果是所有这些单词,那么匹配所有单词的标准是什么


看看这本资源,我强烈建议你买一本Jeffrey Friedl的《掌握正则表达式》这本书。

Aha!谢谢你的帮助,赛斯。我一直在想这个问题,结果发现问题根本不是RegEx部分!我将结束这个问题,因为我真正的问题是完全没有问题的,但非常感谢你的帮助!!计划好了,但是我不会让我再等几分钟。啊哈!谢谢你的帮助,赛斯。我一直在想这个问题,结果发现问题根本不是RegEx部分!我将结束这个问题,因为我真正的问题是完全没有问题的,但非常感谢你的帮助!!计划好了,但除非我再等几分钟,否则我不会这么做。这在我的情况下是不合适的,因为我需要返回HTML格式的结果。否则我会完全按照你的建议去做。我正在动态地添加一些特定单词的链接。@Brad DOM解析器可以很好地重新创建HTML:)虽然我大体上同意你的观点(并且永远不会尝试使用正则表达式解析HTML),但我认为这对于这个应用程序来说有点过分了。但是,我会把这个想法放在我的后口袋里。谢谢。这对我来说不合适,因为我需要返回HTML格式的结果。否则我会完全按照你的建议去做。我正在动态地添加一些特定单词的链接。@Brad DOM解析器可以很好地重新创建HTML:)虽然我大体上同意你的观点(并且永远不会尝试使用正则表达式解析HTML),但我认为这对于这个应用程序来说有点过分了。但是,我会把这个想法放在我的后口袋里。谢谢