2

我的正则表达式收到一条错误消息。这是消息:

消息:索引 17 附近的非法字符范围。[~?!@#$%^& ()_-+=[]|\;:'“<>,.?/]{8,9}.* ^

注意:消息末尾的 ^ 在 + 号下方。

这是我的代码:

    private static final String PASSWORD_PATTERN_SPECIAL_8 = ".*[~?!@#$%^&*()_-+=[]|\\;:‘“&lt;>,.?/]{8,9}.*";
4

3 回答 3

4

好像您正在使用 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()函数获得。

于 2013-07-11T08:42:52.587 回答
0

您需要转义字符串内的双引号

private static final String PASSWORD_PATTERN_SPECIAL_10 = ".*[~?!@#$%^&*()_-+=[]|\\;:‘\“&lt;>,.?/]{10,20}.*";
于 2013-07-11T08:33:58.773 回答
0

特殊的正​​则表达式字符

.\\+*?^$[]{}()|/

括号内只转义

  1. ^一开始,

  2. -中间,

  3. ], 和

  4. \\.

如果破折号不是括号中的第一个或最后一个字符,则需要对其进行转义。

\_-\\+序列查找 和 之间的所有_字符+

结束括号也可能需要转义。

于 2017-07-23T20:12:53.703 回答