[英]regex for allowing only certain special characters and also including the alphanumerical characters
[英]Regex pattern allowing certain special characters
我在edittext android中使用正則表達式^[a-zA-Z0-9@.#$%^&*-_&\\\\\\\\]+$
進行密碼驗證。 我面臨的問題是我的正則表達式無法限制字符,如,;/
(即這應該受到限制,但目前允許)。 請幫助。 感謝您的回答
問題是你在字符類的中間使用了未轉義的連字符 。 請改用:
^[a-zA-Z0-9@.#$%^&*_&\\\\-]+$
在正則表達式中間使用時,連字符的行為類似於范圍,即az
或AZ
或0-9
等。在正則表達式中,范圍為*-_
。
在*
和_
,它將匹配以下字符:
, ;
, /
等。查看此ascii圖表以供參考(它將匹配此表中的所有內容):
42 * 43 + 44 , 45 - 46 . 47 /
48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7
56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ?
64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G
72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O
80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W
88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _
PS:你的正則表達式可以縮短為:
^[\\w@.#$%^&*&\\\\-]+$
關鍵在於這里的一小部分*-_
這是從“ ”到“_”的一系列字符。 如果你想只有“ ”,“ - ”和“_”,你需要逃避“ - ”。 你最后還有一個重復字符“\\”
工作正則表達式將是: ^[a-zA-Z0-9@.#$%^&*\\-_&\\\\]+$
為了將來參考,您可以使用RegExr 。 當你將鼠標懸停在正則表達式的部分區域時,它會很好地分解它們並解釋它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.