繁体   English   中英

在正则表达式中使字符可选

[英]make characters optional in regular expression

我正在尝试验证其中没有多余字符的(美国)电话号码。 因此格式为1-555-555-5555,没有短划线,空格等,1是可选的。 但是,我的正则表达式只有前导1的数字和没有它的数字都是无效的。 以下是我在使用哪里出错了?

"^(1)\\d{10}$"

使用:

"^1?\\d{10}$"

的? 意思是“可选的”。

你没有做任何 1选择的东西。 你把它放在一个组中,但就是这样。 你要这个:

"^1?\\d{10}$"

这基本上说匹配(按此顺序):

  • 字符串的开头
  • 可选地字符'1'
  • 正好十位数
  • 字符串的结尾

有关详细信息,请查看Pattern文档 例如, ? 列在“贪婪量词”部分中,如下所示:

X? X,曾经或根本没有

使用这个"/^((\\+?1-[2-9]\\d{2}-[2-9]\\d{2}-\\d{4})|(\\([2-9]\\d{2}\\)(\\s)?[2-9]\\d{2}-\\d{4}))$/"它只允许美国允许的数字,包括”1-xxx-xxx- xxxx“,”+ 1-xxx-xxx-xxxx“,(xxx)xxx-xxxx。 我希望这就是你要找的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM