谁能让我知道以下正则表达式模式的含义?
Pattern p1=Pattern.compile("^1?(\\d{10})");
Pattern p2=Pattern.compile("^1?([1-9])(\\d{9})");
谁能让我知道以下正则表达式模式的含义?
Pattern p1=Pattern.compile("^1?(\\d{10})");
Pattern p2=Pattern.compile("^1?([1-9])(\\d{9})");
在我的脑海中,这些看起来像是匹配美国电话号码的正则表达式。
第一个匹配一个由 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 次(在本例中为数字)请注意,两个表达式都以 开头^
,这仅表示“仅在行首匹配”。另请注意,此处使用的括号用于捕获字符组,但不影响表达式的含义。
为了解释正则表达式,你可以随时使用这个在线解释器
正则表达式的输出:
正则表达式:^1?(\d{10}) 节点说明 -------------------------------------------------- ------------------------------ ^ 字符串的开头 -------------------------------------------------- ------------------------------ 1?'1'(可选(匹配最多的金额 可能的)) -------------------------------------------------- ------------------------------ (分组并捕获到 \1: -------------------------------------------------- ------------------------------ \d{10} 位 (0-9) (10 次) -------------------------------------------------- ------------------------------ ) \1 结尾
正则表达式:^1?([1-9])(\d{9}) 节点说明 -------------------------------------------------- ------------------------------ ^ 字符串的开头 -------------------------------------------------- ------------------------------ 1?'1'(可选(匹配最多的金额 可能的)) -------------------------------------------------- ------------------------------ (分组并捕获到 \1: -------------------------------------------------- ------------------------------ [1-9] 任何字符:'1' 到 '9' -------------------------------------------------- ------------------------------ ) \1 结尾 -------------------------------------------------- ------------------------------ (分组并捕获到 \2: -------------------------------------------------- ------------------------------ \d{9} 位 (0-9) (9 次) -------------------------------------------------- ------------------------------ ) \2 结尾
第一个正则表达式:
^
- 行或字符串的开头
1?
-1
零个字符或一个重复
\d{10}
字符 - 十位数字字符
第二个正则表达式:
^
- 行首或字符串的开头
1?
- 字符1
零或重复一次
[1-9]
- 任何数字字符,除了0
\d{9}
- 九位数字字符