大家好, 我是regex的新手,并试图在java中应用两个特定的正则表达式。
1 - Regex以79开头,仅包含数字,长度必须为9.我的解决方案是
^(79)\\d{9}$
但不匹配此字符串。 791234567.
2 - 另一个正则表达式以79或78开头,仅包含数字,长度必须为10。
我的解决方案是^(79-78)\\d{10}$
两者都不同,每种情况都需要不同的正则表达式。任何帮助都会很棒。
答案 0 :(得分:4)
答案 1 :(得分:1)
这是正则表达式:
^79\\d{7}$
和^7(8|9)\\d{8}$
现在解释一下:
79\\d{9}
将匹配11个字符(79-78)
不是你想象的那样,它实际上只是按照这个特定的顺序捕捉字符“79-78”,你想要的是交替:(79|78)
(79|78)
可以成为7(9|8)
答案 2 :(得分:0)
\\d{9}
表示(另一个)9位数字。 你需要7(9 - 2你已经使用过)
第二个问题相同, 请改用
\\d{8}
表示另外8个数字
答案 3 :(得分:0)
你的正则表达式不起作用,因为你没有考虑79
占据的2个字符。
应该是
^79\d{7}$
这意味着“以79开头,后面还有7位数”。总共有9个字符。
你的第二个正则表达式不起作用,因为-
并不意味着“或”。 |
表示“或”。
^(79|78)\d{8}$
同样,出于同样的原因,它应该是\d{8}
而不是\d{10}
。