正则表达式匹配一个单词,即使字母之间也有空格

时间:2015-03-31 07:54:20

标签: php regex preg-replace preg-match preg-match-all

我希望有一个正则表达式匹配一个单词,即使字符之间有空格。 当我想匹配单词test时,它应符合以下内容:

test t est t e s t

等等,但不应该匹配这样的事情:

tste te ts s tet

我有这个正则表达式: (t[\s]*e[\s]*s[\s]*t[\s]*) 但我不相信这个非常有效。

2 个答案:

答案 0 :(得分:1)

实际上,它与t\s*e\s*s\s*t相同(如果单词出现在较大的字符串中,则\bt\s*e\s*s\s*t\b更可取)。这是匹配这些单词的唯一方法。你必须消耗这些空格,否则就不会有匹配。

答案 1 :(得分:1)

为什么不从输入中删除所有水平空格然后匹配正则表达式:

$input = 't e s t';
$regex = '/\btest\b/i';

preg_match($regex, preg_replace('/\h+/', '', $input), $m);