PHP preg_match检查具有特定单词的字符串

时间:2012-09-14 11:27:40

标签: php match

我想检查字符串只包含几个特定字词。

4bored4,4blur4,4blingeye4,4bathing4,4congratz4,4crisp4,4curse4,空格和圆点。

这是我的代码

$s = '...... 4crisp4 4crisp4 4crisp4';

preg_match('/^[4bored4|4blur4|4blingeye4|4bathing4|4congratz4|4crisp4|4curse4| |\.]+$/',$s,$m);

但失败了这个$ s ='hahahha 4crisp4 4crisp4 4crisp4'; 为什么这个带hahahha字的字符串可以用这个模式吗?

如果此字符串上没有特定的单词,点,空格,我希望返回失败。

2 个答案:

答案 0 :(得分:0)

使用^时意味着您只在字符串的开头查找它。而$意味着你只是在字符串的末尾寻找它。

这将有效:

$s = '4crisp4 4crisp4 4crisp4';
preg_match('/^[4bored4|4blur4|4blingeye4|4bathing4|4congratz4|4crisp4|4curse4| |\.]+$/',$s,$m);

这不起作用:

$s = 'asdf 4crisp4 4crisp4 4crisp4';
preg_match('/^[4bored4|4blur4|4blingeye4|4bathing4|4congratz4|4crisp4|4curse4| |\.]+$/',$s,$m);

答案 1 :(得分:0)

试试这个

preg_match('/[4bored4|4blur4|4blingeye4|4bathing4|4congratz4|4crisp4|4curse4| |\.]+$/',$s,$m);   

您需要删除“^”,它会为您提供以

开头的匹配项