Regex 在Wordpress插件中不替换preg_replace

Regex 在Wordpress插件中不替换preg_replace,regex,preg-replace,wordpress,Regex,Preg Replace,Wordpress,继上一篇文章之后,我想用以下格式的链接替换ALL-CAPS*word的每个实例: dictionary.com/browse/<TERM> 使用时,似乎我的正则表达式是正确的,并且应该在每次查找时替换它 我是否做错了什么,要么是在preg\u replace调用中,要么是在Wordpress API的插件/过滤器注册中 呼叫的完整上下文: function define_filter($content){ $content = preg_replace('#[A-Z][A-Z

继上一篇文章之后,我想用以下格式的链接替换ALL-CAPS*word的每个实例:

dictionary.com/browse/<TERM>
使用时,似乎我的正则表达式是正确的,并且应该在每次查找时替换它

我是否做错了什么,要么是在
preg\u replace
调用中,要么是在Wordpress API的插件/过滤器注册中


呼叫的完整上下文:

function define_filter($content){
  $content = preg_replace('#[A-Z][A-Z]+#', '<a href="//dictionary.com/browse/$1">$1</a>', $content);
}

add_filter('the_content', 'define_filter');
函数定义过滤器($content){
$content=preg_replace(“#[A-Z][A-Z]+#,”,“$content”);
}
添加_过滤器(“_内容”、“定义_过滤器”);

*我正在使用
[A-Z][A-Z]+
语法来确保我不匹配像“I”和“A”这样的词我相信函数需要返回替换的结果:

return $content;
而且,这个正则表达式看起来不正确。如果你想在所有的大写字母中匹配一个完整的单词,它是

'#\b[A-Z]+\b#'

另外,您想要的是
$0
(整个匹配),而不是
$1
(第一个捕获组,您的正则表达式没有)

我相信函数需要返回替换的结果:

return $content;
而且,这个正则表达式看起来不正确。如果你想在所有的大写字母中匹配一个完整的单词,它是

'#\b[A-Z]+\b#'

另外,您需要的是
$0
(整个匹配),而不是
$1
(第一个捕获组,您的正则表达式没有)

添加的
\b
帮助。。现在它替换了链接,但没有添加匹配的
$1
。。可能还有其他想法吗?我没有注意到:你想要的是
$0
(整场比赛),而不是
$1
(第一个捕获组,你的正则表达式没有)。这就是我想要的!谢谢,
\b
的添加帮助了。。现在它替换了链接,但没有添加匹配的
$1
。。可能还有其他想法吗?我没有注意到:你想要的是
$0
(整场比赛),而不是
$1
(第一个捕获组,你的正则表达式没有)。这就是我想要的!谢谢,艾伦