如何在 java 的正则表达式中包含空格?

我正在尝试让用户可以输入 07XXXXXXXXX 或 07XXX XXXXXX,两者都应该有效,但我的正则表达式似乎无法正常工作


我尝试添加 \\d、\\s、\\w 但这些都不起作用


我的代码是:


//The space should be between {3} and [0-9]

while (!Scanner.hasNext("07[0-9]{9} | 07[0-9]{3} [0-9]{6}")) {


    System.out.println("\nThe mobile number you have entered is not valid.\nIt should start with 07 and should contain 9 additional digits.");


    Scanner.nextLine();

} //end while

该程序应该接受 07XXXXXXXXX 和 07XXX XXXXXX,但是当我尝试包含空格时,它不接受任何一个选项。


“07[0-9]{9}”本身适用于 07XXXXXXXXX,但是当我添加“| 07[0-9]{3} [0-9]{6}”时,这两个选项都不起作用。


不负相思意
浏览 91回答 1
1回答

慕森卡

如果空格后面带有 ? 问号表示空间的“零个或一个”07[0-9]{3} ?[0-9]{6}您还可以使用括号中的数字对来给出范围:07[0-9]{3} {0,1}[0-9]{6}如果您打算允许使用连字符等其他字符,您可以为它们创建一个字符类。这允许空格、连字符或点:07[0-9]{3}[-. ]{0,1}[0-9]{6} 07[0-9]{3}[-. ]?[0-9]{6}我建议您将连字符放在字符类的前面,因为它可以表示“范围”,就像 0-9 一样。把它放在第一位并没有定义范围。另外,句点通常表示“任何字符”,但在字符类中它失去了这种特殊含义,实际上只是一个句点
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java