我正在使用 php 并从我的国家/地区电话号码中搜索正确的正则表达式。我不擅长正则表达式,但我对我所在国家/地区电话号码的可能模式进行了一些研究,这些模式是:
请帮我拯救我的一天!
假设您删除了所有空格(可能还有其他无效字符):
((\+|00)216)?[0-9]{8}
Run Code Online (Sandbox Code Playgroud)
此正则表达式应匹配所有提供的示例。
更新:
这是“完整”的正则表达式。它基于维基百科文章:
((\+|00)216)?(74|71|78|70|72|9|4|2|5|73|75|76|77|79)[0-9]{6}
Run Code Online (Sandbox Code Playgroud)
我不知道的是如何处理一位数的区号,也许下面的正则表达式更好:
((\+|00)216)?(74|71|78|70|72|09|04|02|05|73|75|76|77|79)[0-9]{6}
Run Code Online (Sandbox Code Playgroud)
更新 2:
最终的解决方案,这次基于另一个文档:
((\+|00)216)?([2579][0-9]{7}|(3[012]|4[01]|8[0128])[0-9]{6}|42[16][0-9]{5})
Run Code Online (Sandbox Code Playgroud)