我写了以下测试代码片段:
"123".matches("\\[a-zA-Z0-9]{1,5}");
但是,它会返回false
。
为什么以及如何解决这个问题?
答案 0 :(得分:7)
通过转义第一个 "font.face": "Liberation Mono"
,您将其设为文字[
,而您想要定义字符类(括号表达式)。
删除[
:
\
请参阅Java demo:
"123".matches("[a-zA-Z0-9]{1,5}");
^
答案 1 :(得分:4)
您使用\\
转义第一个方括号,这意味着方括号之间的表达式不会被视为字符类。删除转义,你应该没问题:
"123".matches("[a-zA-Z0-9]{1,5}"
// Here -------^
答案 2 :(得分:3)
没有\\
的正则表达式可以正常工作。你不需要逃避任何事情。
"123".matches("[a-zA-Z0-9]{1,5}");