如何分离正则表达式值?

时间:2011-05-17 07:27:34

标签: php regex

用户进行选择,我想测试选择是否有效。例如,

 preg_match("/(test1/test2|test3)/", $value)

问题是一个值为test1/test2,但每个测试都被视为单个值。知道如何更改它以将test1/test2作为单个值吗?

例如:

test1/test2,
test3

4 个答案:

答案 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)