2013-03-20 103 views
-7

$正則表達式= '/ [aeiou]同時* /'PHP:正則表達式查詢

但願匹配 「aeiioauo」 或只是 「AAAAAAAAAAAA」, 「EEEEEEE」, 「IIIII」 等(零個或更多的只集合中的一個字符)。

謝謝

+7

嘛,只有一條路一個有用的網站。 – 2013-03-20 20:14:28

+3

它會匹配任何字符串。包括空白,沒有元音的字符串,數字,任何東西。 – 2013-03-20 20:16:04

回答

1

是的,它會的。 []意味着任何一套,所以它會符合要求。但是,因爲您沒有附加條件,所以它也會與其他任何字符串匹配。

+2

mmmmm ....肉....午餐時間 – 2013-03-20 20:16:40

+0

@JonathanKuhn tnx! )))我的英語很不好!))) – 2013-03-20 20:17:47

0

正則表達式會匹配所有可以使用的字符,因爲默認情況下正則表達式是貪婪的。順便說一句:它不僅會匹配iiiii等,還會有aeiio等等。

4

由於這裏沒有認真的答案,我會給出一個認真的答案。

當你通過這樣的:

$regex = '/[aeiou]*/' 

preg_matchpreg_match_all(或一些其他的功能),它會在任何字符串報告一次匹配。

preg_matchpreg_match_allpreg_replacepreg_replace_callback所有默認會發現非重疊子(S)的正則表達式匹配。 (其他語言可能具有聲明的函數,整個字符串與正則表達式匹配,這是不同的)。

[aeiou]*將匹配任何元音(英文),或更多次,連續出現。由於正則表達式在沒有字符的情況下也匹配(空字符串),並且空字符串可以位於任何字符串中的任何位置,所以您至少會得到一次匹配。

要檢查字符串包含的只有韻母,你需要正則表達式,與^表示字符串的開頭和$表示字符串的結尾:

$regex = '/^[aeiou]*$/' 

的上面的正則表達式只會在輸入字符串只包含元音時匹配,或者是空字符串。
匹配示例:aeuuuooiiii,(空字符串),a。非比賽
例子:aaaaaaaaaab#@#$

如果你想在輸入字符串匹配元音的一些連續序列(子),你應該讓至少匹配1元音:所以我們使用+代替匹配*

$regex = '/[aeiou]+/' 

實施例:eeeeffffeeeeddiiuoiiuo; e在非比賽red
例子:鬥不過nthng 2 s hr

希望這有助於爲初學者的教程。

0

使用正則表達式將匹配 「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中測試正則表達式,找出...自己嘗試一下

http://www.pagecolumn.com/tool/pregtest.htm