用户进行选择,我想测试选择是否有效。例如,
preg_match("/(test1/test2|test3)/", $value)
问题是一个值为test1/test2
,但每个测试都被视为单个值。知道如何更改它以将test1/test2
作为单个值吗?
例如:
test1/test2,
test3
答案 0 :(得分:2)
你真的需要一个正则表达式吗?怎么样:
$value = 'test1';
$valid = in_array( $value, array( 'test1', 'test2', 'test3' ), true );
这似乎不那么密集,但功能正常。
答案 1 :(得分:1)
为什么不使用in_array函数:
$array = array('test1/test2' 'test3');
if (in_array($value, $array))
{
//do something
}
答案 2 :(得分:0)
不确定php正则表达式的细节,但我认为如果你把它包在括号中使它成为一个组它可能会有用。
此外,如果你没有做比你的例子更花哨的东西,那么可能只是更快/更容易检查值是否在数组中
答案 3 :(得分:0)
最好使用strpos或其他字符串函数,除非您实际匹配模式。但既然你问过......
preg_match("/(?:test1\/test2)|(?:test3)/", $value)