[解決済み] 正規表現における角括弧と括弧の違いは何ですか?
2022-03-01 23:42:03
質問
JavaScriptで使用するために作成した正規表現を紹介します。
var reg_num = /^(7|8|9)\d{9}$/
もうひとつ、私のチームメンバーが提案したものを紹介します。
var reg_num = /^[7|8|9][\d]{9}$/
電話番号の検証を行うルールです。
- 10個の数字だけであること。
- 最初の数字は7,8,9のどれかであること。
解き方は?
これらの正規表現は(マッチング目的では)等価です。
-
/^(7|8|9)\d{9}$/
-
/^[789]\d{9}$/
-
/^[7-9]\d{9}$/
説明の様子です。
-
(a|b|c)
は正規表現 "OR" であり、 "a or b or c" を意味します。 キャプチャ 桁の数字です。厳密には、次のようなコードになります。(?:7|8|9)
にするために 非 をキャプチャするグループです。 -
[abc]
は、quot;文字クラス" で、a,b,cのいずれかの文字" を意味します(文字クラスは、例えば、範囲を使用することができます。[a-d]
[abcd]
)
これらの正規表現が似ている理由は、文字クラスが "or" の省略形だからです(ただし、単一の文字に対してのみ)。また、alternation では、次のようなこともできます。
(abc|def)
これは文字クラスには変換されません。
関連
-
[解決済み] XPathのcontains関数で正規表現を使用する方法
-
[解決済み] Javascriptで米国の電話番号を再フォーマットするための正規表現
-
[解決済み] bashと正規表現を使って1行でプロセスを検索してkillする
-
[解決済み] re.searchとre.matchの違いは何ですか?
-
[解決済み] Regex 2つの文字列間のすべての文字にマッチする
-
[解決済み] 角括弧の間のテキストを抽出する正規表現
-
[解決済み] 貪欲 vs. 渋い vs. 所有格の修飾語
-
[解決済み] ユーザー入力文字列を正規表現に変換する
-
[解決済み】JavaScriptで電話番号を検証する
-
[解決済み] 数字と小数点を除くすべてを置換する正規表現
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン