为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

不负相思意 2023-09-27 10:17:41
我正在尝试让用户可以输入 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}”时,这两个选项都不起作用。
查看完整描述

1 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

如果空格后面带有 ? 问号表示空间的“零个或一个”

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 一样。把它放在第一位并没有定义范围。另外,句点通常表示“任何字符”,但在字符类中它失去了这种特殊含义,实际上只是一个句点


https://img1.sycdn.imooc.com//651391040001b33b05180541.jpg

https://img1.sycdn.imooc.com//6513910f000182ed06510373.jpg

查看完整回答
反对 回复 2023-09-27
  • 1 回答
  • 0 关注
  • 90 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信