我需要每次每个字符串只允许一个特定的单词,但是存在多个有效单词。
使用下面的正则表达式我没有得到预期的结果:
preg_replace('/\b^(true|false|TRUE|FALSE)\b/', '', 'false'); // Returns an empty string, but i expect 'false'
preg_replace('/\b^(true|false|TRUE|FALSE)\b/', '', 'test') // Returns 'test', but i expect an empty string
有人知道怎么了吗?
编辑1
长输入的示例:
preg_replace('/\b^(true|false|TRUE|FALSE)\b/', '', 'This regex allow only boolean, such as true, false, TRUE and FALSE');
它打印:
// This regex allow only boolean, such true, false, TRUE and FALSE
但是我希望有一个空字符串,因为只有一个单词是有效的匹配项
在这种情况下,您不需要正则表达式,可以使用in_array
:
$arr = array('true', 'false', 'TRUE', 'FALSE');
$result = (in_array($str, $arr, true)) ? $str : '';
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句