【问题标题】:regex java , limit of numbers ,unlimited whitespace and only one char正则表达式 java ,数字限制,无限空格和只有一个字符
【发布时间】:2017-05-11 18:17:00
【问题描述】:

我尝试用 Java 编写正则表达式。我想创建限制为 {9,12} 号码的电话号码正则表达式。在数字之间可以使用空格和一个字符斜线,但空格和斜线不计入限制

例如:

  1. 12345678 - 错误(只有 8 位数字)
  2. 123456789 - 真(9 位)
  3. 123456789012 - 真(12 位)
  4. 1234 567 89 012 - 真(12 位数字和空格)|
  5. 12345678901234 - 错误(超出限制 13 位)
  6. 123/456 782 321 - True(12 位数字,一个斜杠和空格)
  7. 123456//787 78 - 错误(11 位,因为双斜杠)

我希望空格和斜杠字符独立于限制。

谢谢!

【问题讨论】:

  • 最简单的是[0-9]{9,12}。但这还不足以进行验证,因为根据国家/地区代码和000000000 这样的数字可能会限制前几位数字。

标签: java regex


【解决方案1】:

数字之间可以使用空格和一个斜杠,但空格和斜杠不计入限制

在不考虑 whitespacesslash 的情况下,考虑在正则表达式匹配之后的此规范。

正则表达式: ^(?:[\/\s]?[0-9]){9,12}$

【讨论】:

  • 谢谢!我还有一个问题:是否可以在开头和结尾只放一个斜线?例如:/123456789123 或 123456789123/,更多的斜线返回 false 例如://123456789012 或 123456789012//
  • 应该算一个斜线吗?
  • @firstontheworld: ^\/?(?:[\/\s]?[0-9]){9,12}\/?$ 可以。
  • 你太棒了!!非常感谢!!
  • 字符串中可以只放一个斜线吗?例如:12345/65765 - TRUE , 1234/5436/767 - false 因为两个斜线带有 in 表达式
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多