2011-10-21 84 views
1

選擇字符串我有以下的正則表達式它匹配以下正則表達式

/^\+[0-9]{1,3}\s[0-9]{1,6}\s[0-9\s]{5,8}$/u 

在我的PHP代碼。我無法理解哪個字符串會被這個表達式匹配。

我嘗試以下

+7 777 777777 

和不匹配......你能幫助我理解 - 什麼字符將匹配這個正則表達式?

+1

這對我的作品。 –

回答

3

它確實匹配。您的代碼中可能存在錯誤?這是正確的做法:

$s = '+7 777 777777'; 
$pattern = '/^\+[0-9]{1,3}\s[0-9]{1,6}\s[0-9\s]{5,8}$/u'; 
echo preg_match($pattern, $s); 

結果:

1 

看到它聯機工作:ideone

+0

是的,你是對的!謝謝!我試圖在這裏(http://www.regextester.com/)和這裏(http://regexpal.com/)測試它,並且它說「沒有匹配」。據我現在瞭解,這種服務只適用於^ \ + [0-9] {1,3} \ s [0-9] {1,6} \ s [0-9] {5,8} $變體正則表達式。 – dizpers

+0

我以爲同樣的事情,但當我去codepad.org發佈一個例子,我得到了一個錯誤,說'警告:preg_match():內部pcre_fullinfo()錯誤-3在第4行上「(http:/ /codepad.org/tBMeMoVW)(我不得不刪除u修飾符,因爲他們的php不是用utf8支持編譯的,但是用這個簡單的例子它應該沒關係)。也許如果error_reporting被設置爲顯示警告,將會看到類似的錯誤。 –