Afa*_*mee 26 java regex escaping special-characters
我用逗号分隔正则表达式列表:
.{8},[0-9],[^0-9A-Za-z ],[A-Z],[a-z]
Run Code Online (Sandbox Code Playgroud)
我对逗号进行了分割.现在我正在尝试将此正则表达式与生成的密码进行匹配.问题是Pattern.compile
不喜欢没有转义的方括号.有些人可以给我一个简单的函数,它接受一个像这样的字符串:[0-9]
并返回转义字符串\[0-9\]
.
Cul*_*lub 34
出于某种原因,上述答案对我不起作用.对于像我这样的人来说,这就是我找到的.
我期待一个反斜杠来逃避括号,但是,如果你将模式存储在一个字符串中,你必须使用两个.第一个反斜杠将第二个反斜杠转义为字符串,因此正则表达式看到的是\]
.由于正则表达式只看到一个反斜杠,它使用它来逃避方括号.
\\]
Run Code Online (Sandbox Code Playgroud)
在正则表达式中,这将匹配单个结束方括号.
例如,如果您尝试匹配换行符,则只使用一个反斜杠.您正在使用字符串转义模式在字符串中插入换行符.正则表达式没有看到\n
- 它看到换行符,并匹配它.你需要两个反斜杠,因为它不是一个字符串转义序列,它是一个正则表达式转义序列.
Lau*_*ves 24
来自文档:
public static String quote?(String s)
返回
String
指定的文字模式String
.此方法生成一个String,该String可用于创建与字符串s匹配的Pattern,就好像它是文字模式一样.
输入序列中的元字符或转义序列将没有特殊含义.
Dan*_*een 13
您可以使用\ Q和\ E特殊字符...\Q和\ E之间的任何内容都会自动转义.
\Q[0-9]\E
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
48223 次 |
最近记录: |