检查字符串是否为长度为 1 到 5 的字母数字
Check that String is alphanumeric with length 1 to 5
我写了下面的测试代码片段:
"123".matches("\[a-zA-Z0-9]{1,5}");
然而,returns false
.
为什么以及如何解决这个问题?
通过转义第一个 [
,您将其设为文字 [
,而您想要定义一个 字符 class(方括号表达式)。
删除\
:
"123".matches("[a-zA-Z0-9]{1,5}");
^
System.out.println("123".matches("[a-zA-Z0-9]{1,5}")); // = > true
没有 \
的正则表达式将起作用。你不需要转义任何东西。
"123".matches("[a-zA-Z0-9]{1,5}");
您正在使用 \
转义第一个方括号,这意味着方括号之间的表达式不会被视为字符 class。删除转义,你应该没问题:
"123".matches("[a-zA-Z0-9]{1,5}"
// Here -------^
我写了下面的测试代码片段:
"123".matches("\[a-zA-Z0-9]{1,5}");
然而,returns false
.
为什么以及如何解决这个问题?
通过转义第一个 [
,您将其设为文字 [
,而您想要定义一个 字符 class(方括号表达式)。
删除\
:
"123".matches("[a-zA-Z0-9]{1,5}");
^
System.out.println("123".matches("[a-zA-Z0-9]{1,5}")); // = > true
没有 \
的正则表达式将起作用。你不需要转义任何东西。
"123".matches("[a-zA-Z0-9]{1,5}");
您正在使用 \
转义第一个方括号,这意味着方括号之间的表达式不会被视为字符 class。删除转义,你应该没问题:
"123".matches("[a-zA-Z0-9]{1,5}"
// Here -------^