IM匹配的信件,試圖對幾個小時找到PHP正確的正則表達式匹配任何語言的字母,但要防止它允許空間正則表達式所有語言PHP
我有嘗試這個
[^\p{L}]
這是確定的,但它看起來像它允許空間
那我也試試這個
[^\w_-]
它仍然看起來它允許空間
任何人都可以幫忙嗎?
IM匹配的信件,試圖對幾個小時找到PHP正確的正則表達式匹配任何語言的字母,但要防止它允許空間正則表達式所有語言PHP
我有嘗試這個
[^\p{L}]
這是確定的,但它看起來像它允許空間
那我也試試這個
[^\w_-]
它仍然看起來它允許空間
任何人都可以幫忙嗎?
您需要指定Unicode修飾符u
才能獲得Unicode character properties in PCRE。
例如...
$pattern = "/([\p{L}]+)/u";
$string = "你好,世界!Привет мир! !مرحبا بالعالم";
if (preg_match_all($pattern, $string, $match)) {
var_dump($match);
}
給了我們......
array(2) {
[0]=>
array(6) {
[0]=>
string(6) "你好"
[1]=>
string(6) "世界"
[2]=>
string(12) "Привет"
[3]=>
string(6) "мир"
[4]=>
string(10) "مرحبا"
[5]=>
string(14) "بالعالم"
}
[1]=>
array(6) {
[0]=>
string(6) "你好"
[1]=>
string(6) "世界"
[2]=>
string(12) "Привет"
[3]=>
string(6) "мир"
[4]=>
string(10) "مرحبا"
[5]=>
string(14) "بالعالم"
}
}
嗨,是的,你的工作,但這仍然允許我不想讓這是我卡住的地方 – Mireille28
我不明白你的意思是「*允許空間*」。正如您可以清楚地看到的那樣,在上面的示例中所示的捕獲模式中沒有空格。 – Sherif
作爲例子,我希望我的用戶能夠使用所有語言註冊,但是當我使用/([\ p {L}] +)/ u時,如果用戶在用戶名中指定了空格,它仍然會通過驗證我希望在最終允許所有字符,但防止用戶把空間放在 – Mireille28
喜@ mireille28和感謝要求你的問題在計算器上。我只是想爲您提供一些有用的未來技巧。你應該永遠記住提供你所嘗試的輸入和你得到的結果,你不希望在你的問題中得到答案,以便讓人們知道你出錯的地方。請回顧[如何提問](http://stackoverflow.com/help/how-to-ask)部分以獲得更好的答案。 – Sherif
謝謝謝里夫im仍然有點混淆與此網站將盡力改善我的問題,在未來的感謝。 – Mireille28