我對php很陌生。我需要檢查給定的字符串是否有來自給定集合的字符,如{a, b, c}
。所以,我正在嘗試正則表達式。 "(abc)+"
應該做的伎倆。整個字符串的正則表達式匹配
但是,查看preg_match
和相關函數的手動條目,我注意到這些函數執行子字符串匹配,而不是將整個字符串與正則表達式規則進行匹配。
我敢肯定有一個簡單的方法來做到這一點。基本上,我需要一個二進制答案,不管整個字符串是否與規則匹配。你們能幫我嗎?
謝謝!
我對php很陌生。我需要檢查給定的字符串是否有來自給定集合的字符,如{a, b, c}
。所以,我正在嘗試正則表達式。 "(abc)+"
應該做的伎倆。整個字符串的正則表達式匹配
但是,查看preg_match
和相關函數的手動條目,我注意到這些函數執行子字符串匹配,而不是將整個字符串與正則表達式規則進行匹配。
我敢肯定有一個簡單的方法來做到這一點。基本上,我需要一個二進制答案,不管整個字符串是否與規則匹配。你們能幫我嗎?
謝謝!
您可以用方括號創建字符類。所以[abc]
將匹配類中的任何字符(括號)。
要得到一系列它們,你需要一個量詞。您已經使用了+
這意味着一個或多個。如果您還想要允許空字符串,則可以使用含義爲零或多個的*
。
爲確保您檢查完整的字符串,您需要錨點。 ^
將匹配字符串的開始和$
字符串的結尾。
^[abc]+$
如果完整的串僅由abc
並具有至少一個字符此正則表達式將匹配。
您可以在線測試正則表達式,例如在Regexr上。你可以see this regex here,當然可以修改它。
而不是匹配整個字符串到你想要的字符,你可以嘗試匹配任何其他字符,如果有甚至一個匹配,那麼字符串不遵守你的規則。
只要使用這樣的事情:
[^abc]
您是否嘗試過應用正則表達式來測試字符串? – 2011-12-20 05:37:13
請參閱http://regular-expressions.info/以獲取更好的介紹,並查找'^'和$'斷言。 – mario 2011-12-20 05:39:27
@mario:那麼,你是說「^(abc)+ $」會適合我嗎? – Navneet 2011-12-20 06:53:51