【发布时间】:2010-06-03 04:05:25
【问题描述】:
我想匹配变量中包含的单词/模式,但只匹配没有空格的单词。请提出建议。
$var = '看';
$array = ('look', 'greatlook', 'lookgreat'、'look great'、'badlook'、 '看起来不好','看起来','看起来');
匹配单词:look、greatlook、lookgreat、badlook
不匹配:看起来很棒,看起来很糟糕,看起来(尾随空格),(空格)看起来。
以下函数的语法没问题,但它匹配一切
$match = preg_grep("/$var/", $array);
$match = preg_grep ("/^$var/", $数组); (匹配开头带有“look”的单词)
但是当我包含 [^\s] 时,它给出了一个错误
$match = preg_grep("/$var[^\s]/", $array);
解析错误:语法错误,意外的 '^',需要 T_STRING 或 T_VARIABLE
TIA
【问题讨论】:
-
如果您的文字可能包含标点符号,请务必使用
$var到preg_quote。 -
look greatlook怎么样?那是一场比赛吗? -
@polygenelubricants。不,我不想在匹配值中有空格
-
+1 用于询问正则表达式问题,其中包含您希望匹配或拒绝的字符串列表。