PHP 5正则表达式 - 在在线编辑器中查找匹配但在本地代码中找不到

时间:2014-12-03 16:59:45

标签: php regex

这是我的问题:

$keyword = "md";
$pattern = "/\W" . $keyword . "{1}|" . $keyword . "{1}\W/i";
$str = "asdfmd";
$result = preg_match_all($pattern, $str);

出于某种原因,此模式适用于http://regex101.com/#pcrehttp://www.regextester.com/,但是当我在代码中使用它时,它找不到匹配项。知道为什么会这样吗?提前感谢您的回复!

在线工作的其他$ str:“mdasdf”,“mdasdf”,“asdfmd”。

更新: 希望这会有所帮助。这是我对regex101的输入

Test: /\Wmd|md\W/gi

Strings:
 mdasas*
mdasas*
asmdas
asasmd*
asasmd *
 asasmd*

注意:倒数第二个字符串有一个尾随空格,*表示在regex101中找到

2 个答案:

答案 0 :(得分:1)

请阅读http://php.net/manual/en/function.preg-match-all.php

也许你必须写preg_match_all($pattern, $str, $result);

我写maybe因为我不知道你真正想要收到什么。检查PHP 5.4.0参数matches之前是不可选的。

<强> UPD

对于startend字符串,请尝试使用简单的"/^".$keyword."|".$keyword."$/i"

答案 1 :(得分:1)

所以我弄清楚发生了什么。这些网站上的文本输入区域被视为一个长字符串,这就是为什么匹配在不应该出现时显示的原因。我正在使用错误的令牌。再次感谢您的帮助!

-W