-1

私はこの表現を使用していますが、それは私が必要としているものに最適です:

.*(cq|conquest).*

単語/フレーズ/文などを返します。文字「cq」または「征服」という単語が含まれています。ただし、これらの試合から「征服力」という用語を含むものはすべて除外したいと思います。

例:

  • some conquest here(一致する必要があります)
  • another cq with some conquest here(一致する必要があります)
  • too much cq or conquest power is bad(一致してはいけません)

上記の正規表現に対してどのようにそれを行うことができますか? そうしないと、私が使用しているプログラム (Advanced Combat Tracker) が 2 つの異なるタブを作成します。

4

2 に答える 2

1

"conquest"またはを含む任意の文字列に一致させたいが、文字列にを含ま"cq"ない場合は一致させない場合"conquest power"、正規表現は次のようになります。

^(?!.*conquest power).*?(?:cq|conquest).*

上記は、文字列の先頭から行の終わりまで一致しようとします。各行の先頭から一致させたい場合は、可能な場合はマルチラインモードをオンに(?m)してください。正規表現の先頭に追加すると、一致する場合があります。

改行間で一致させる場合は、に変更.するか、可能な場合はモード[\s\S]をオンにします。singleline

「「cq」または「conquest」に一致させたい」だけでなく、「正規表現にその行を抽出してもらいたい」と言って、人々を混乱させました。

「cq」や「conquest」だけではなく、「cq」や「conquest」を含む文字列/行(?)を一致させたいと思います。

于 2013-03-09T10:39:51.440 に答える
0

あなたの最初の質問から、 「cq」または「conquest」を含むが「power」を含まないすべての文字列に一致させたいことがわかりました。この場合、次の正規表現が機能します。

^([^p]|p(?!ower))*(cq|conquest)([^p]|p(?!ower))*$

regexpal

于 2013-03-09T00:01:17.380 に答える