用戶進行選擇,我想測試選擇是否有效。所以例如如何區分正則表達式值?
preg_match("/(test1/test2|test3)/", $value)
問題是,一個值是test1/test2
,但每個測試都被視爲單個值。任何想法如何改變這個有test1/test2
作爲一個單一的價值?
如:
test1/test2,
test3
用戶進行選擇,我想測試選擇是否有效。所以例如如何區分正則表達式值?
preg_match("/(test1/test2|test3)/", $value)
問題是,一個值是test1/test2
,但每個測試都被視爲單個值。任何想法如何改變這個有test1/test2
作爲一個單一的價值?
如:
test1/test2,
test3
你真的需要這裏的正則表達式?如何:
$value = 'test1';
$valid = in_array($value, array('test1', 'test2', 'test3'), true);
這似乎不太密集,但功能。
不確定關於php的正則表達式的具體情況,但我想如果你把它包裝在括號中使它成爲一個組,它可能會工作。
另外,如果你沒有做任何事情更看中的不是你的榜樣它可能只是更快/更容易看檢查值是一個數組
爲什麼不使用in_array功能:
$array = array('test1/test2' 'test3');
if (in_array($value, $array))
{
//do something
}
最好使用strpos或其他字符串函數,除非實際上匹配模式。但是既然你已經問過了....
preg_match("/(?:test1\/test2)|(?:test3)/", $value)
你應該在'test1/test2'即ie中跳過'/'。 'preg_match(「/(test1 \/test2 | test3)/」,$ value)' – fardjad 2011-05-17 07:31:50
這根本不是很清楚,據我所知,不是一個有效的PHP正則表達式(非轉義斜槓)。你能舉一個輸入文本,輸出和期望輸出(或有效/無效)的例子嗎? 'test1/test2'在這裏被捕獲爲單個值。 – Kobi 2011-05-17 07:32:16
缺乏清晰度的問題。 – 2011-05-17 08:33:55