正規表現を作ろうとしていますが、初心者です。そして、私はこれで何度も何度も失敗しているようです。
誰かが私を助けることができれば親切に
基本的に、次のことをテストする式が必要です。
1- abcまたはdefで始まり、その後に0から900までの数字が続くものは、最も近いものまで、その間に何でも含めることができます。
どんな助けも考慮されます
よろしくお願いします
これが必要な場合、abcXXX(0<xxx<900)
またはこれをdefXXX (0<xxx<900)
試す場合:
\b(abc)([0-9]|[1-9][0-9]|[1-8][0-9][0-9]|900)\b|\b(def)([0-9]|[1-9][0-9]|[1-8][0-9[0-9]|900)\b]
説明:正規表現[0-9]
は1桁の数字0から9に[1-9][0-9]
一致します。2桁の数字10から99に一致します。これは簡単な部分です。正規表現もそう0-900
です。追加は境界マッチャーです。に似ています:最初に3桁の数字が続きます。0-899
900
[0-9]|[1-9][0-9]|[1-8][0-9][0-9]|900
\b( )\b
def
def
\b(def)([0-9]|[1-9][0-9]|[1-8][0-9][0-9]|900)\b
最後の使用|
はor
です。
Javaの正規表現テストページでテスト済み
多分私はいくつかの奇妙な入力を試みませんでしたが、これはあなたが自分で掘るための基本的な部分です
アラン・ムーアのより良い提案で編集してください:
\b(abc|def)([0-9]|[1-9][0-9]|[1-8][0-9][0-9]|900)\b
次の正規表現は、式の最初の部分と一致します。表現の2番目の部分を理解するのは難しいです。
abcまたはdefで始まり、その後に0〜900の数字が続くもの
^(abc|def)([0-9]{1,2}|[1-8][0-9]{2}|900)
以下に表現を説明しました。
^(abc|def) //Starts with abc or def
(
[0-9]{1,2}|[1-8][0-9]{2}|900 // matches number between 0-900
)