我需要一些Java中的正则表达式的帮助。
我们有字符串,我希望String.matches给我" true"如果我们的字符串包含N
个数字。
例如(N = 12
):
+012345678900 - true
0123-4567-0000 - true;
但:
+0123456789 - false
0123-4567-000000 - false.
我尝试了这一个(.*[0-9].*){N}
和这个^(.*[0-9].*){N}$
。但它不正确。
答案 0 :(得分:5)
你可以试试这个,
^(?:\\D*\\d){12}\\D*$
matches
方法不需要锚点,所以
(?:\\D*\\d){12}\\D*
就够了..
\\D
匹配任何字符,但不匹配数字。所以(?:\\D*\\d){12}
确保必须存在任何非dgit字符,但它必须包含12位数字。最后\\D*
匹配零个或多个非数字字符。