0

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

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'; 为什么这个带有 haha​​hha 单词的字符串可以使用这种模式?

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

4

2 回答 2

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);
于 2012-09-14T11:31:48.330 回答
0

像这样试试

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

你需要删除“^”它会给你以开头的匹配

于 2012-09-14T11:32:31.977 回答