入力文字列があります (「私の電話番号は 860-678 - 2345 です」)。入力文字列から、正規表現を使用して電話番号を検証する必要があります。
以下のパターンを使用していますが、電話番号に空白が含まれていると機能しません。
[(]?[2-9]{1}[0-9]{2}[)-. ,]?[2-9]{1}[0-9]{2}[-. ,]?[0-9]{4}
ありがとう。
入力文字列があります (「私の電話番号は 860-678 - 2345 です」)。入力文字列から、正規表現を使用して電話番号を検証する必要があります。
以下のパターンを使用していますが、電話番号に空白が含まれていると機能しません。
[(]?[2-9]{1}[0-9]{2}[)-. ,]?[2-9]{1}[0-9]{2}[-. ,]?[0-9]{4}
ありがとう。
次の正規表現:
(\([2-9]\d\d\)|[2-9]\d\d) ?[-.,]? ?[2-9]\d\d ?[-.,]? ?\d{4}
次のすべてに一致します。
860-678-2345
(860) 678-2345
(860) 678 - 2345
そしておそらく他にもかなりの量です。内訳:
(\([2-9]\d\d\)|[2-9]\d\d)
- 括弧の有無にかかわらず、数字の最初の部分に一致します ?[-.,]? ?
- ハイフン、ピリオド (または英国人にとってピリオド) またはコンマ (周囲のスペースの有無にかかわらず)。[2-9]\d\d
- 数字の 2 番目の部分に一致します。\d{4}
- 数字の最後の部分に一致します。\d\d
と[0-9]{2}
は同等です。前者はわずかに短いため、読みやすさが向上します。同様に、[2-9]
と[2-9]{1}
は同等です。{1}
just は「前のパターンの 1 つのインスタンス」を意味しますが、これはとにかく与えられたものです。
区切り文字の前後に別々にスペースをチェックできます。
[(]?[2-9]{1}[0-9]{2}[ ]?[)-.,]?[ ]?[2-9]{1}[0-9]{2}[ ]?[-.,]?[ ]?[0-9]{4}
これは実際には括弧と一致しないため、次のようなもの(234-567, 1234
が一致することに注意してください。したがって、より厳密な一致が必要な場合は、はるかに複雑な正規表現が必要になるか、別のものを使用して検証をコーディングする必要があります。
最善の方法は、最初にすべての空白を削除することです。そうすれば、実行した RE で番号を簡単に確認できます。