我的正则表达式收到错误消息。以下是信息:
消息:索引17附近的字符范围非法 [?!〜@#$%^&安培; ()_- + = [] | \ ;:““<?>,/]。{8,9} * ^
注意:消息末尾的^位于+符号下方。
这是我的代码:
private static final String PASSWORD_PATTERN_SPECIAL_8 = ".*[~?!@#$%^&*()_-+=[]|\\;:‘“<>,.?/]{8,9}.*";
答案 0 :(得分:4)
好像你在使用Java。
尝试:
1. `Pattern.Quote()` function
2. \Q(characterlistHereWithoutbracket)\E
3. Escape the character manually by using `\` in front of the
character.
第二个选项使用任何东西作为\Q..\E
之间的文字。
修改强>
关于第二个选项,我的意思是你可以在this示例中给出它。请参阅特殊字符。
或者您可以检查您的正则表达式引擎使用的qouted模式是否与此类似:
\.\*\[~\?!@\#\$%\^&\*\(\)_-\+=\[]\|\\\\;:‘"<>,\.\?/]\{8,9}\.\*
注意:此模式由.Net Regex.Escape()
函数获得。
答案 1 :(得分:0)
你需要转义字符串
中的双引号private static final String PASSWORD_PATTERN_SPECIAL_10 = ".*[~?!@#$%^&*()_-+=[]|\\;:‘\“<>,.?/]{10,20}.*";
答案 2 :(得分:0)
特殊RegEx字符
.\\+*?^$[]{}()|/
在括号内只能逃避
^
一开始,
-
,
]
和
\\
。
如果破折号不是括号中的第一个或最后一个字符,则需要对其进行转义。
\_-\\+
序列会查找_
和+
之间的所有字符。
也可能需要转义末端括号。