为php组合两个正则表达式
我有两个正则表达式为php组合两个正则表达式,php,regex,Php,Regex,我有两个正则表达式 ^(((98)|(\+98)|(0098)|0)(9){1}[0-9]{9})+$ ^(9){1}[0-9]{9}+$ 如何将这些短语组合在一起 有效电话: just start with : 0098 , +98 , 98 , 09 and 9 sample : 00989151855454 +989151855454 989151855454 09151855454 9151855454 你没有提供什么通过什么不通过,但我认为如果我理解正确,这将起作用 /^\+?0
^(((98)|(\+98)|(0098)|0)(9){1}[0-9]{9})+$
^(9){1}[0-9]{9}+$
如何将这些短语组合在一起
有效电话:
just start with : 0098 , +98 , 98 , 09 and 9
sample :
00989151855454
+989151855454
989151855454
09151855454
9151855454
你没有提供什么通过什么不通过,但我认为如果我理解正确,这将起作用
/^\+?0{0,2}98?/
^匹配字符串的开头
\+? 匹配0或1加上反斜杠要转义的符号
0{0,2}匹配0字符的0和2之间的0、1和2
9与文本9匹配
8.匹配文字8个字符中的0或1个
看看你的第二个正则表达式,看起来你想让第一个正则表达式的第一部分98\+98 | 0098 | 0成为可选的。把它变成可选的?之后,它将允许第二个正则表达式允许的数字。改变这个,
^(((98)|(\+98)|(0098)|0)(9){1}[0-9]{9})+$
对,
我在正则表达式中又做了一些更正。使用{1}是多余的,因为这是一个字符的默认行为,不管有没有它。除非需要分组,否则不需要对regex进行不必要的分组。我已经去掉了最外面的括号和后面的+因为这是不需要的
这个正则表达式
^(?:98|\+98|0098|0)?9[0-9]{9}$
火柴
00989151855454
+989151855454
989151855454
09151855454
9151855454
演示:
但是请注意,您需要在国家/地区代码后的第一位数字为9或0 @Jan好的,我和我的答案基本相同+1.
00989151855454
+989151855454
989151855454
09151855454
9151855454