我正在使用这个正则表达式:
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})$
使用插入符号(^
),字符串的开头必须存在或不在字符串的开头,后跟两位数字的序列+
。
另一方面;没有插入符号,重要的是字符串末尾的序列。初始序列是可选的。
这就是为什么正则表达式与第二行不匹配的原因。