0
這組RegEx /^[\p{L}\p{N}]+/u
有什麼問題。當我的高級進入%openminded正則表達式返回false。我需要它來接受這種格式RegEx不接受%
%開明
100%開明
開明100%
我需要什麼,在表達補充的嗎?因此,即使用戶最初輸入了%
或任何特殊字符,它也會接受輸入。
這組RegEx /^[\p{L}\p{N}]+/u
有什麼問題。當我的高級進入%openminded正則表達式返回false。我需要它來接受這種格式RegEx不接受%
%開明
100%開明
開明100%
我需要什麼,在表達補充的嗎?因此,即使用戶最初輸入了%
或任何特殊字符,它也會接受輸入。
百分號不是\pS
符號。這是一個\pP
標點符號,如:
$ uniprops %
U+0025 ‹%› \N{PERCENT SIGN}
\pP \p{Po}
All Any ASCII Assigned Basic_Latin Common Zyyy Po P Gr_Base Grapheme_Base Graph GrBase Other_Punctuation Punct Pat_Syn Pattern_Syntax PatSyn POSIX_Graph POSIX_Print POSIX_Punct Print Punctuation X_POSIX_Graph X_POSIX_Print X_POSIX_Punct
你應該熟悉普通類(也許腳本),你最喜歡的文字屬於。下面是一些running unichars輸出樣本:
$ unichars -gs '[\pP\pS]' '\p{Block=Basic_Latin}'
U+0021 ! GC=Po SC=Common EXCLAMATION MARK
U+0022 " GC=Po SC=Common QUOTATION MARK
U+0023 # GC=Po SC=Common NUMBER SIGN
U+0024 $ GC=Sc SC=Common DOLLAR SIGN
U+0025 % GC=Po SC=Common PERCENT SIGN
U+0026 & GC=Po SC=Common AMPERSAND
U+0027 ' GC=Po SC=Common APOSTROPHE
U+0028 ( GC=Ps SC=Common LEFT PARENTHESIS
U+0029 ) GC=Pe SC=Common RIGHT PARENTHESIS
U+002A * GC=Po SC=Common ASTERISK
U+002B + GC=Sm SC=Common PLUS SIGN
U+002C , GC=Po SC=Common COMMA
U+002D - GC=Pd SC=Common HYPHEN-MINUS
U+002E . GC=Po SC=Common FULL STOP
U+002F /GC=Po SC=Common SOLIDUS
U+003A : GC=Po SC=Common COLON
U+003B ; GC=Po SC=Common SEMICOLON
U+003C < GC=Sm SC=Common LESS-THAN SIGN
U+003D = GC=Sm SC=Common EQUALS SIGN
U+003E > GC=Sm SC=Common GREATER-THAN SIGN
U+003F ? GC=Po SC=Common QUESTION MARK
U+0040 @ GC=Po SC=Common COMMERCIAL AT
U+005B [ GC=Ps SC=Common LEFT SQUARE BRACKET
U+005C \ GC=Po SC=Common REVERSE SOLIDUS
U+005D ] GC=Pe SC=Common RIGHT SQUARE BRACKET
U+005E ^GC=Sk SC=Common CIRCUMFLEX ACCENT
U+005F _ GC=Pc SC=Common LOW LINE
U+0060 ` GC=Sk SC=Common GRAVE ACCENT
U+007B { GC=Ps SC=Common LEFT CURLY BRACKET
U+007C | GC=Sm SC=Common VERTICAL LINE
U+007D } GC=Pe SC=Common RIGHT CURLY BRACKET
U+007E ~ GC=Sm SC=Common TILDE
因此,無論正確普通類添加到您的類,像
[\pL\pN\p{Po}]
或者只是添加你所需要的特定的字符。順便說一句,任何想要\pL
的東西幾乎總是也要\pM
。
因爲'\ p {L}'只是字母而'\ p {N}'只是數字---你不能在你的正則表達式中使用空格或百分號。 – 2012-02-14 03:10:46
我很喜歡正則表達式,我會如何讓它接受空格或%?我需要用我的正則表達式更改 – user1149244 2012-02-14 03:27:49
我已經像這樣製作了regEx/^ [\ p {L} \ p {N} \ p {S}] +/u。正如我已閱讀的PHP手冊S將匹配符號,但它仍然不工作 – user1149244 2012-02-14 03:55:34