携帯(イスラエル)電話番号正規表現の開発。現在私は持っています
re.compile(r'^[\(]?0?(5[023456789])\)?(\-)?\d{7}$')
ほとんどのユースケースをキャッチします。問題は、最初の1つの括弧が表示された場合にのみ、2番目の括弧と一致することです。
したがって、(055)-5555555または(055)5555555または0555555555は一致しますが、:055)-5555555は一致しません。2つの正規表現を使用して条件をテストできることは知っていますが(最初の正規表現が他の条件のテストと一致する場合)、それは賢明な解決策とは思えません。
正規表現のルックアラウンドのようなものが必要だと思いますが、それを使用する方法がわからない、または概念を正しく理解している
編集:ロジックの説明
市外局番:5で始まり、(特定のリストからの)1桁の数字で始まり、前にオプションが0である必要があります。括弧内にある可能性もあります。次に、オプションのハイフンと7桁の数字
明確化:もう一方が存在する場合にのみ、両方の括弧を一致させる必要があります。これは、2番目の括弧だけでなく、最初の括弧にも当てはまり、その点を見逃しました。