[...]正则表达式的含义是什么?

cod*_*mer 6 java regex

我是新来的正则表达式通过持续的教程,我发现正则表达式[...]Matches any single character in brackets..所以我试过了

System.out.println(Pattern.matches("[...]","[l]"));
Run Code Online (Sandbox Code Playgroud)

我也试过逃避括号

System.out.println(Pattern.matches("[...]","\\[l\\]"));
Run Code Online (Sandbox Code Playgroud)

但它给了false我预期,true因为l它在括号内.

如果有人清楚我的怀疑,那会很有帮助.

Mar*_*oun 4

[和内的字符](称为字符类)被视为一组可供选择的字符,但前导除外,前导 ^会否定结果并且-意味着范围(如果它位于两个字符之间)。例子:

  • [-123]匹配-, 1,23
  • [1-3]匹配 1 到 3 范围内的单个数字
  • [^1-3]匹配除1 到 3 范围内的任何数字之外的任何字符
  • .匹配任何字符
  • [.]匹配 .

如果你想匹配字符串,[l]你应该将正则表达式更改为:

System.out.println(Pattern.matches("...", "[l]"));
Run Code Online (Sandbox Code Playgroud)

现在它打印了true

正则表达式[...]相当于正则表达式\.[.].