1

正規表現には2つの条件があります。言う、

  1. (.*text.*) --->これは、入力文字列にサブ文字列「text」が含まれているかどうかを確認します。
  2. (^((?!query).)*$) ---->これは、入力文字列に「query」という単語が含まれていないかどうかをチェックします。

どちらも私にとってはうまく機能しています。

ANDしかし、演算子のようなものを使用して両方の条件をチェックする正規表現が必要です。

入力文字列にサブ文字列「text」が含まれ、「query」が含まれていない場合にのみtrueを返す正規表現が必要です。

AND正規表現が演算子をサポートしていないという情報を入手しました。だから、私は次のようなことをしようとしました:

NOT(NOT(expression 1)|(NOT(expression 2)))

例えば:-(!(.*query.*)|(^((?!text).)*$))

しかし、これでも私にはうまくいきません。

誰かがこれに関して私を助けてください。

4

1 に答える 1

2

消費しない正規表現を使用します。

典型的な表記法は次のとおりです。

(?=expr)

これはmatch exprを意味しますが、その後は元の match-point でマッチングを続けます。

これらは好きなだけ実行できます。これは「および」になります。

構文例:

(?=match this expression)(?=match this too)(?=oh, and this)

アップデート:-

正規表現が文字列全体と一致するように.*incaseを使用する必要があります。matches()

あなたの正規表現はstr.matches("(?=(.*text.*))(?=(^((?!query).)*$)).*")

于 2013-03-05T07:15:55.017 に答える