开发移动(以色列)电话号码正则表达式。目前我有
re.compile(r'^[\(]?0?(5[023456789])\)?(\-)?\d{7}$')
它涵盖了大多数用例。只有出现第一个括号时,问题才匹配第二个括号。
所以 (055)-5555555 或 (055)5555555 或 0555555555 会匹配,但: 055)-5555555 不会。我知道我可以使用 2 个正则表达式来测试条件(如果第一个匹配另一个条件的测试),但这似乎不是一个聪明的解决方案。
我想我需要一些类似正则表达式的东西,但不确定如何使用它,或者我正确理解了这个概念
编辑:解释逻辑
区号:应以 5 开头,然后是一个数字(来自特定列表),前面有一个选项 0。也可能在括号内。然后是一个可选的连字符和 7 位数字
澄清:只有当另一个括号存在时,我才需要匹配两个括号,第一个也是如此,不仅是第二个,错过了这一点