Java 正则表达式以79开头,长度为9
各位好,, 我不熟悉正则表达式,并尝试在java中应用两个特定的正则表达式 1-正则表达式以79开头,仅包含数字,长度必须为9。我的解决办法是Java 正则表达式以79开头,长度为9,java,regex,matcher,Java,Regex,Matcher,各位好,, 我不熟悉正则表达式,并尝试在java中应用两个特定的正则表达式 1-正则表达式以79开头,仅包含数字,长度必须为9。我的解决办法是 ^(79)\\d{9}$ 但与此字符串不匹配。791234567. 2-另一个正则表达式以79或78开头,仅包含数字,长度必须为10。 我的解决方案是^(79-78)\\d{10}$ 两者都是不同的,每种情况都需要不同的正则表达式。任何帮助都会很好 \\d{9} 表示(其他)9位数字。 你需要7个(你已经用过9-2个) 第二个问题也是如此, 用这
^(79)\\d{9}$
但与此字符串不匹配。791234567.
2-另一个正则表达式以79或78开头,仅包含数字,长度必须为10。
我的解决方案是^(79-78)\\d{10}$
两者都是不同的,每种情况都需要不同的正则表达式。任何帮助都会很好
\\d{9}
表示(其他)9位数字。
你需要7个(你已经用过9-2个)
第二个问题也是如此,
用这个代替
\\d{8}
表示另外8个数字
表示(其他)9位数字。
你需要7个(你已经用过9-2个)
第二个问题也是如此,
用这个代替
\\d{8}
使用前瞻断言指示8个附加数字
^(?=79)\d{9}$
^(?=79|78)\d{10}$
否则匹配前两个字符,然后剩余7或8个字符
^79\d{7}$
^7[89]\d{8}$
使用前瞻性断言
^(?=79)\d{9}$
^(?=79|78)\d{10}$
否则匹配前两个字符,然后剩余7或8个字符
^79\d{7}$
^7[89]\d{8}$
这里是正则表达式:^79\\d{7}$
和^7(8 | 9)\\d{8}$
现在解释一下:
- “79”中有两个字符,因此
将匹配11个字符79\\d{9}
不是你想象的那样,它实际上只是按照这个特定的顺序捕获字符“79-78”,你想要的是交替:(79-78)
(79-78)
- 78和79有共同的“7”,因此
可以变成(79 | 78)
7(9 | 8)
- “79”中仍有2个字符,因此之后只需匹配8位数字
- 以下是正则表达式:
^79\\d{7}$
和^7(8 | 9)\\d{8}$
现在解释一下:
- “79”中有两个字符,因此
将匹配11个字符79\\d{9}
不是你想象的那样,它实际上只是按照这个特定的顺序捕获字符“79-78”,你想要的是交替:(79-78)
(79-78)
- 78和79有共同的“7”,因此
可以变成(79 | 78)
7(9 | 8)
- “79”中仍有2个字符,因此之后只需匹配8位数字
- 您的正则表达式不起作用,因为您没有考虑
79
占用的2个字符
应该是
^79\d{7}$
这意味着“从79开始,后面还有7个数字”。总共有9个字符
您的第二个正则表达式不起作用,因为-
不表示“或”<代码>表示“或”
同样,出于同样的原因,它应该是
\d{8}
而不是\d{10}
。您的正则表达式不起作用,因为您没有考虑79
占用的2个字符
应该是
^79\d{7}$
这意味着“从79开始,后面还有7个数字”。总共有9个字符
您的第二个正则表达式不起作用,因为-
不表示“或”<代码>表示“或”
同样,出于同样的原因,它应该是
\d{8}
而不是\d{10}
。79
已经是两位数字了。使用\d{7}
而不是\d{9}
…并且不需要捕获组。但是,根据您使用正则表达式的方式,您可能需要开始和结束锚定。此外,备选方案不是编写的79-78
,而是编写的79 | 78
(如果您将其与其他内容组合,您可能需要一个组围绕它,但可能是一个非捕获组)。79
已经是两位数字。使用\d{7}
而不是\d{9}
…并且不需要捕获组。但是,根据您使用正则表达式的方式,您可能需要开始和结束锚定。此外,备选方案不是由79-78
编写的,而是由79 | 78
编写的(如果您将其与其他内容相结合,可能需要一个组围绕它,但可能是一个非捕获组)。