0

私は新しいユーザーなので、この質問に最初の投稿で回答する必要がある場合は言い訳をします: 正規表現の一致数は 20 以上、5 ずつ増加、範囲は 20 から 999 です

それでも、ここに現在の質問があります:

  • 20 以上のすべての数字に一致 (上限なし)
  • 5 刻み
  • 小数点なし
  • 先行ゼロは使用できません

別の投稿でのstackoverflowユーザーYMI応答:

(\d{2}|[2-9])[05]

およびユーザー nhahtdh

^([2-9]|[1-9]\d)[05]$

ただし、上限がなく、先頭のゼロも許可されないというオプションを検討したいと思います。

4

1 に答える 1

0

nhahtdh私の答えは'sに非常に似ていますが、文字数に上限を設けない\d+a ではなく に注意してください。\d

次のような正規表現が必要になります。

\b((?:[23456789]|[123456789]\d+)[05])\b

実例

ここで何が起こっているかを簡単に説明するには:

  • \b空白や記号などの境界に一致するため、\bs はテキストから完全な単語を見つけます
  • 次に、単語のプレフィックスに 2 つのオプションを指定します。2 以上の単一の数字にすることができます。[23456789]
  • または、先頭が 0 ではない 2 つ以上の数字の場合もあります。[123456789]\d+
  • 接尾辞については、5 の倍数である必要があります。[05]

正規表現の視覚化


ちなみに、0 を消費してから数字を照合するだけで、他の基準を満たすだけでなく、0*先行 0 を持つ数値も照合できます。これを追加すると、任意の数の先行 0 と一致することに注意してください。

\b0*((?:[23456789]|\d{2,})[05])\b
于 2015-11-12T12:06:04.313 に答える