0
我有一個數據庫的設置與正則表達式模式傳遞給preg_match,但它可以是空的,導致//
並傳遞給preg_match
與任何字符串進行匹配。爲什麼preg_match與空模式總是匹配
例如:
$m = preg_match('//', 'something');
echo $m
// output: 1
爲什麼這種行爲,以及如何解決方法嗎?
我有一個數據庫的設置與正則表達式模式傳遞給preg_match,但它可以是空的,導致//
並傳遞給preg_match
與任何字符串進行匹配。爲什麼preg_match與空模式總是匹配
例如:
$m = preg_match('//', 'something');
echo $m
// output: 1
爲什麼這種行爲,以及如何解決方法嗎?
//
模式對可以匹配的內容沒有限制,所以一切都匹配。
您可以使用模式/^$/
(字符串的開頭緊接着是字符串的結尾)。
你可以測試你傳遞的模式是否是//
。
不知道*爲什麼*,但如果你使用'/^$ /',你應該只能匹配空白值。 – esqew
當然,它會匹配任何東西。如果你想匹配空字符串,然後使用錨''/^$ /'' – anubhava
我已經將包含解決方案的編輯回滾到問題中。如果你認爲你自己的解決方案增加了一些東西,然後將它作爲答案發布,另請參閱http://meta.stackoverflow.com/questions/262806/is-it-ok-for-users-to-edit-the-accepted-回答 - 到 - 他們-問題 –