我想检查字符串只包含几个特定字词。
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字的字符串可以用这个模式吗?
如果此字符串上没有特定的单词,点,空格,我希望返回失败。
答案 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);
您需要删除“^”,它会为您提供以
开头的匹配项