这些符号应该包含在!"#$%&'()*+-./:;<=>?@[\]^_{x}~中。
但我试图把“这个特殊的字符,它给错误编译时间错误”。
private static final String PASSWORD_PATTERN = "((?=.*[a-z])(?=.*\\d)(?=.*[A-Z])(?=.*["@#$%!%^&*()_+=?/[],.<>|~`'-]).{8,32})";可以一杯吗,提前谢谢
发布于 2014-05-17 07:11:00
当然,不能简单地将引号放在字符串文字中,以字符串结尾。它与正则表达式无关,无论以后对字符串做什么,这都是一样的。
只需转义它:将"替换为\"
关于注释中的新问题的补充:如果将[和]放入字符类(即[和]之间),则必须将它们转义为正则表达式。当您在字符串文本中这样做时,就会产生双重转义,因为您必须转义\。还必须在字符类中转义-。
所以改变
["@#$%!%^&*+=?/[],.<>|~`'-:/<>]至
["@#$%!%^&*+=?/\\[\\],.<>|~`'\\-:/<>]发布于 2014-05-17 07:56:57
我建议您在尝试使用正则表达式时使用https://www.debuggex.com/。如果正则表达式不正确,则更容易直接告诉您。
https://stackoverflow.com/questions/23708628
复制相似问题