私はそれが国コードのチェックや0
の前にして、市外局番の4つの組み合わせによって開始さ最も簡単な方法は、
^(?:0|\+46|0046)(?:900|939|944|99)
だろうと思います。
Check it out here at regex101。
編集
あなたがルールに一致する数字ないをしたい場合は、負の先読みと同じことを試すことができます:
^(?!(?:0|\+46|0046)(?:900|939|944|99)).*
See this one here。
または負の先読みなし:
^(?:[^0+]|0[^09]|\+[^4]|\+4[^6]|(?:\+46[^9])|(?:0046[^9])).*$
and this one here。
編集2
OKは、ここで我々は再び行く;)
これはタフな1であることが判明しました。しかし、ここで私達は行く:
^(?=.{8,20}$)(?>\+46|0046|0(?!0))(?!900|939|944|99)\+?\d*
- 長さを主張するために初めに正の先読みを追加し
- 正しい国コードと一致する原子群を使用 - ない別のダブルゼロ
00
を許可します
- 料金所番号を許可しないためのネガティブなルックアヘッド。
桁数を変更できるように変更されています(冒頭のオプション+
)。
See this one here。
は、コンテンツが "0"または "+46"または "0046"で始まり、その後900,939,944,99のブロックを持つことを許可するには、実際には単一の式が必要です。 004690、00469391234、00469441234、0046991234などの場合は、数字が0または+46の場合は一致しないはずです。 –
ネガをテストしたいのですか?あなたの正規表現フレーバーが負のルックアヘッドをサポートしている場合、 '^(?:0 | \ +46 | 0046)(?:900 | 939 | 944 | 99))。*'を試してください。 [こちらをご覧ください](https://regex101.com/r/qC6gK2/3)。 – ClasG
いくつかのシナリオで動作するように見えるので、長さは8〜20文字で、0または+46または0046で始める必要があります。^(?:0 | \ +46 | 0046) (?:900 | 939 | 944 | 99))[+ | \ d] {8,20}しかし、それは123456789を渡しました。 –