1. ホーム
  2. regex

[解決済み] ある数字に2回または4回マッチする正規表現

2022-11-01 20:09:39

質問

正規表現に関する簡単な質問なのですが、答えが見つかりません。

ある数字が正確に連続して現れるかどうかを判断したいのですが 2 または フォー 回です。どのような構文が使用できますか?

\d{what goes here?}

試しに \d{2,4} を試してみましたが、この式は3桁も受け付けます。

どのように解決するのですか?

特定の構文があるわけではありませんが、方法はたくさんあります。

(?:\d{4}|\d{2})    <-- alternation: four digits if possible, else just two
\d{2}(?:\d{2})?    <-- two digits, plus two more if possible
(?:\d{2}){1,2}     <-- two digits, times one or two

例えば、A〜Zの1文字と2桁または4桁の数字からなる文字列にマッチさせるには、次のように記述します。 ^[A-Z]+(?:\d{4}|\d{2})$ と書き、カンマで区切られた2桁か4桁の数字の羅列にマッチさせたい場合は、次のように書きます。 ^((?:\d{4},|\d{2},)*(?:\d{4}|\d{2})$ あるいは ^(?:\d{2}(?:\d{2})?,)*\d{2}(?:\d{2})$ .