我是正則運算式的新手,我一直在解決這個問題。
PHP:檢查來自任何基于拉丁語的語言的字母字符?給出了精彩的正則運算式來檢查拉丁腳本中的任何字符,這是我需要的一部分。
^\p{Latin} $
并在https://regex101.com/r/I5b2mC/1提供了一個作業示例
如果我使用 PHP 中的正則運算式
echo preg_match('/^\p{Latin} $/', $testString);
并且$testString只包含拉丁字母,輸出將為1. 如果有任何非拉丁字母,輸出將為0. 杰出的。
要添加號碼我試過^\p{Latin} [[:alnum:]]*$,但允許在拉丁文字的任何字符或非拉丁文字母和數字(字母不帶重音-嚴重,急性,變音符號,變音符號等),因為它是相當于[a-zA-Z0-9]。
如果在拉丁腳本中添加任何帶有字符的數字,則echo preg_match('/^\p{Latin} [[:alnum:]]*$/', $testString);回傳一個0. 所有數字也回傳一個0。這可以通過編輯https://regex101.com/r/I5b2mC/1 中的運算式來確認
如果拉丁腳本中有任何字符、任何數字和/或空格,我如何編輯運算式echo preg_match('/^\p{Latin} $/', $testString);以輸出 a ?例如,如果是,我希望輸出a 。1$testString1$testStringCafé ?üs 459
uj5u.com熱心網友回復:
至少有兩點需要改變:
- 添加
u標志以支持 ASCII 以外的字符 (/^\p{Latin} $/=>/^[\p{Latin}] $/u) - 為字母、數字和空白模式創建一個字符類 (
/^\p{Latin} $/u=>^[\p{Latin}] $/u) - 然后添加數字和空白模式。如果您需要支持任何 Unicode 數字,請添加
\d. 如果您只需要支持 ASCII 數字,請添加0-9.
因此,您可以使用
preg_match('/^[\p{Latin}\s0-9] $/u', $testString) // ASCII only digits
preg_match('/^[\p{Latin}\s\d] $/u', $testString) // Any digits
此外,\swithu標志將匹配任何 Unicode 空白字符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/398897.html
