Java,正则表达式,包含;{n} ";量词

Java,正则表达式,包含;{n} ";量词,java,Java,有人知道为什么下面的代码接受诸如123-123-1234之类的答案吗: [1-9]\\d{2}-[1-9]\\d{2}-\\d{4} NODE EXPLANATION -------------------------------------------------------------------------------- [1-9] any character of: '1' to '9' ---------

有人知道为什么下面的代码接受诸如
123-123-1234
之类的答案吗:

[1-9]\\d{2}-[1-9]\\d{2}-\\d{4}

NODE                     EXPLANATION
--------------------------------------------------------------------------------
  [1-9]                    any character of: '1' to '9'
--------------------------------------------------------------------------------
  \d{2}                    digits (0-9) (2 times)
--------------------------------------------------------------------------------
  -                        '-'
--------------------------------------------------------------------------------
  [1-9]                    any character of: '1' to '9'
--------------------------------------------------------------------------------
  \d{2}                    digits (0-9) (2 times)
--------------------------------------------------------------------------------
  -                        '-'
--------------------------------------------------------------------------------
  \d{4}                    digits (0-9) (4 times)
我认为,对于代码,它只接受2个数字,再接受2个数字,然后再接受4个数字,如下所示:
12-12-1234
子表达式(为可读性插入空格):

它本身接受三位数字,但第一位数字不能为零。

子表达式(为可读性插入空格):

它本身接受三位数字,但第一位数字不能为零。

用于解释正则表达式:

[1-9]\d{2}-[1-9]\d{2}-\d{4}

NODE                     EXPLANATION
--------------------------------------------------------------------------------
  [1-9]                    any character of: '1' to '9'
--------------------------------------------------------------------------------
  \d{2}                    digits (0-9) (2 times)
--------------------------------------------------------------------------------
  -                        '-'
--------------------------------------------------------------------------------
  [1-9]                    any character of: '1' to '9'
--------------------------------------------------------------------------------
  \d{2}                    digits (0-9) (2 times)
--------------------------------------------------------------------------------
  -                        '-'
--------------------------------------------------------------------------------
  \d{4}                    digits (0-9) (4 times)
来自,用于解释正则表达式:

[1-9]\d{2}-[1-9]\d{2}-\d{4}

NODE                     EXPLANATION
--------------------------------------------------------------------------------
  [1-9]                    any character of: '1' to '9'
--------------------------------------------------------------------------------
  \d{2}                    digits (0-9) (2 times)
--------------------------------------------------------------------------------
  -                        '-'
--------------------------------------------------------------------------------
  [1-9]                    any character of: '1' to '9'
--------------------------------------------------------------------------------
  \d{2}                    digits (0-9) (2 times)
--------------------------------------------------------------------------------
  -                        '-'
--------------------------------------------------------------------------------
  \d{4}                    digits (0-9) (4 times)
  • [1-9]
    匹配1到9之间的单个字符
  • \d{2}
    将一个数字精确匹配两次
  • -
    与字符
    -
    匹配一次
对于下一个
[1-9]\d{2}-
,与上面相同,最后一个

  • \d{4}
    将一个数字精确匹配4次
因此正则表达式
[1-9]\d{2}-[1-9]\d{2}-\d{4}
macthes 123-123-1234

  • [1-9]
    匹配1到9之间的单个字符
  • \d{2}
    将一个数字精确匹配两次
  • -
    与字符
    -
    匹配一次
对于下一个
[1-9]\d{2}-
,与上面相同,最后一个

  • \d{4}
    将一个数字精确匹配4次

因此正则表达式
[1-9]\d{2}-[1-9]\d{2}-\d{4}
macthes 123-123-1234

表达式
[1-9]\d{2}-[1-9]\d{2}-\d{4}
表示
0到9范围内的字符
两位数
0到9范围内的字符

正确的正则表达式
\d{2}-\d{2}-\d{4}
,它转换为
两位
-
两位
-
四位


等价java代码
数字。匹配(\\d{2}-\\d{2}-\\d{4}”)

表达式
[1-9]\d{2}-[1-9]\d{2}-\d{4}
表示
0到9范围内的字符
两位
-
0-9范围内的字符
两位
四位

正确的正则表达式
\d{2}-\d{2}-\d{4}
,它转换为
两位
-
两位
-
四位


等效java代码
numbers.matches(\\d{2}-\\d{2}-\\d{4}”)

使用模式类而不是prod的matches函数use@YatiSawhney-对于严格的一次性匹配,使用Pattern类没有性能优势。哦,哇,我简直不敢相信,这现在有这么多意义!非常感谢你们!我真的很感激@泰德霍普:不会的。但我很难相信一个应用程序会只使用一次。使用模式类而不是prod的匹配函数use@YatiSawhney-对于严格的一次性匹配,使用Pattern类没有性能优势。哦,哇,我简直不敢相信,这现在有这么多意义!非常感谢你们!我真的很感激@泰德霍普:不会的。但我很难相信一个应用程序会只使用一次。