通过正则表达式检查可选值是否包含正确的字符



我正在使用这个正则表达式:

egrep "([+][0-9]{2})?[-][0-9]{3}[-][0-9]{3}([-][0-9]{4})$"

因此,根据我的逻辑,可选值应+后跟 2 位数字 => +54

但是当我使用它时,我得到的输出低于:

+11-555-555-5555  #this is correct
+917-999-999-9999  #this is wrong

问题:是否有一些特殊的方法来检查optional值是否准确包含regex中提到的内容,或者我使用了不正确的方法?

试试这个正则表达式:

^([+][0-9]{2})?[-][0-9]{3}[-][0-9]{3}([-][0-9]{4})$

使用插入符号(^),字符串的开头必须存在或不在字符串的开头,后跟两位数字的序列+

另一方面;没有插入符号,重要的是字符串末尾的序列。初始序列是可选的。

这就是为什么正则表达式与第二行不匹配的原因。

相关内容

  • 没有找到相关文章

最新更新