我正在嘗試一個簡單的正則表達式對PHP中的字符串。我努力的正則表達式是PHP:正則表達式 - 未知修飾符錯誤
[A-Za-z0-9\-_]*
如何以往當我使用它在PHP中,我得到一個錯誤說:
Warning: preg_match(): Unknown modifier '*' in "C:/apache/....." on line 2
這裏是我的代碼:
<?php
if(preg_match("[A-Za-z0-9\-_]*",'vidhu_1911')){
echo "it matched!";
}else{
echo "fail to match";
}
?>
你可以告訴我我做錯了?
感謝, Vidhu
好的,我做到了。但它不起作用。這一次它沒有給出錯誤,但它似乎幾乎匹配我放入的每一個字符串。就像它不應該匹配「vidhu 1911」,因爲它有一個空間。但它的確如此。任何想法爲什麼? – Krimson 2012-08-08 11:42:53
這是一個不同的問題。我能告訴你什麼嗎?它幾乎不會匹配每個字符串,它會匹配每個字符串。如果你只想匹配那些只包含這些字符**的字符串,你需要將你的正則表達式錨定到字符串開始和結尾'/^[A-Za-z0-9 \ -_] * $ /'。否則,它會匹配任何子字符串並說:「是的,我找到了一封信!」。請注意,它也會匹配空字符串!因爲你使用了'*',如果你不想要這個,使用量詞'+'來匹配至少一個字符。 – stema 2012-08-08 12:00:56