$正則表達式= '/ [aeiou]同時* /'PHP:正則表達式查詢
但願匹配 「aeiioauo」 或只是 「AAAAAAAAAAAA」, 「EEEEEEE」, 「IIIII」 等(零個或更多的只集合中的一個字符)。
謝謝
$正則表達式= '/ [aeiou]同時* /'PHP:正則表達式查詢
但願匹配 「aeiioauo」 或只是 「AAAAAAAAAAAA」, 「EEEEEEE」, 「IIIII」 等(零個或更多的只集合中的一個字符)。
謝謝
是的,它會的。 []
意味着任何一套,所以它會符合要求。但是,因爲您沒有附加條件,所以它也會與其他任何字符串匹配。
mmmmm ....肉....午餐時間 – 2013-03-20 20:16:40
@JonathanKuhn tnx! )))我的英語很不好!))) – 2013-03-20 20:17:47
正則表達式會匹配所有可以使用的字符,因爲默認情況下正則表達式是貪婪的。順便說一句:它不僅會匹配iiiii等,還會有aeiio等等。
由於這裏沒有認真的答案,我會給出一個認真的答案。
當你通過這樣的:
$regex = '/[aeiou]*/'
到preg_match
或preg_match_all
(或一些其他的功能),它會在任何字符串報告一次匹配。
preg_match
,preg_match_all
,preg_replace
和preg_replace_callback
所有默認會發現非重疊子(S)的正則表達式匹配。 (其他語言可能具有聲明的函數,整個字符串與正則表達式匹配,這是不同的)。
[aeiou]*
將匹配任何元音(英文),或更多次,連續出現。由於正則表達式在沒有字符的情況下也匹配(空字符串),並且空字符串可以位於任何字符串中的任何位置,所以您至少會得到一次匹配。
要檢查字符串包含的只有韻母,你需要錨正則表達式,與^
表示字符串的開頭和$
表示字符串的結尾:
$regex = '/^[aeiou]*$/'
的上面的正則表達式只會在輸入字符串只包含元音時匹配,或者是空字符串。
匹配示例:aeuuuooiiii
,(空字符串),a
。非比賽
例子:aaaaaaaaaab
,#@#$
如果你想在輸入字符串匹配元音的一些連續序列(子),你應該讓至少匹配1元音:所以我們使用+
代替匹配*
$regex = '/[aeiou]+/'
實施例:eeee
和ffffeeeeddiiuo
iiuo
; e
在非比賽red
例子:鬥不過nthng 2 s hr
希望這有助於爲初學者的教程。
使用正則表達式將匹配 「aeiioauo」 或只 「AAAAAAAAAAAA」, 「EEEEEEE」, 「IIIII」
但它還會匹配的空間,因此 「aaaaeeee IIIIII」 將匹配爲
Array
(
[0] => Array
(
[0] => aaaaeeee
[1] =>
[2] => iiiiii
[3] =>
[4] =>
)
)
代替
Array
(
[0] => Array
(
[0] => aaaaeeee
[1] => iiiiii
)
)
所以我建議改變了 '*' 到 '+'
FROM --> $regex = '/[aeiou]*/';
TO --> $regex = '/[aeiou]+/';
編輯:這裏是在PHP中測試正則表達式,找出...自己嘗試一下
嘛,只有一條路一個有用的網站。 – 2013-03-20 20:14:28
它會匹配任何字符串。包括空白,沒有元音的字符串,數字,任何東西。 – 2013-03-20 20:16:04