任何人都可以让我知道下面的正则表达式模式的含义?
Pattern p1=Pattern.compile("^1?(\\d{10})");
Pattern p2=Pattern.compile("^1?([1-9])(\\d{9})");
Run Code Online (Sandbox Code Playgroud)
在我的头顶,这些看起来像正则表达式,以匹配美国电话号码.
第一个匹配由10位数组成的数字,如果第一个数字为1则匹配11位数.
1? - 可选地匹配1\d- 匹配0到9之间的数字(\\d在Java中转义){10} - 匹配前面的字符10次(在这种情况下,一个数字)第二个匹配相同的模式,除了第一个(或第二个,如果存在1个)数字不能是0.
1? - 可选地匹配1[1-9] - 匹配1到9之间的单个数字\d- 匹配0到9之间的数字(\\d在Java中转义){9} - 匹配前面的字符9次(在这种情况下,一个数字)请注意,两个表达式都以^,它只是表示"仅在行的开头匹配".另请注意,此处使用的括号用于捕获字符组,但不影响表达式的含义.