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