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}-
,与上面相同,最后一个
将一个数字精确匹配4次\d{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}-
,与上面相同,最后一个
将一个数字精确匹配4次\d{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类没有性能优势。哦,哇,我简直不敢相信,这现在有这么多意义!非常感谢你们!我真的很感激@泰德霍普:不会的。但我很难相信一个应用程序会只使用一次。