我正在尝试创建一个基本的正则表达式来匹配可以使用点 [.] 或连字符 [-] 作为分隔符的电话号码。格式为 123.456.7890 或 123-456-7890。我目前使用的表达式是:
\d\d\d[-.]\d\d\d[-.]\d\d\d\d
这里的问题是它还匹配具有两个分隔符的电话号码,我希望将其称为无效/不匹配。例如,对于我的表达式,123.456-7890 和 123-456.7890 显示为匹配项,这是我不希望发生的事情。有没有办法做到这一点?
我正在尝试创建一个基本的正则表达式来匹配可以使用点 [.] 或连字符 [-] 作为分隔符的电话号码。格式为 123.456.7890 或 123-456-7890。我目前使用的表达式是:
\d\d\d[-.]\d\d\d[-.]\d\d\d\d
这里的问题是它还匹配具有两个分隔符的电话号码,我希望将其称为无效/不匹配。例如,对于我的表达式,123.456-7890 和 123-456.7890 显示为匹配项,这是我不希望发生的事情。有没有办法做到这一点?
使用反向引用:
^\d{3}([.-])\d{3}\1\d{4}$
这是正则表达式的解释:
^ from the start of the number
\d{3} match any 3 digits
([.-]) then match AND capture either a dot or a dash separator
\d{3} match any 3 digits
\1 match the SAME separator seen earlier
\d{4} match any 4 digits
$ end of the number