1

そこに正規表現マスターはいますか?以下に一致するJavaの正規表現が必要です。

「RANDOMSTUFFSPECIFICWORD」

引用符を含みます。したがって、私は必要です

最初の引用に一致させるために、
RANDOMSTUFF(前のSPECIFICWORDの間にスペースがある任意の数の単語)
SPECIFICWORD(ここでは指定しません。)
と終了引用。

次のようなものと一致させたくありません。

RANDOMSTUFF SPECIFICWORD
「RANDOMSTUFFNOTTHESPECIFICWORD」
「RANDOMSTUFFSPECIFICWORDMORERANDOMSTUFF」
4

4 に答える 4

3

\".*\sSPECIFICWORD\"

間に引用符を入れたくない場合は、\"[^"]*\sSPECIFICWORD\"

.任意の文字に一致
*先行する 0 個以上の文字 (この場合は 0 個以上の任意の文字) に
\s一致 任意の空白文字
SPECIFICWORDは文字列リテラルとして扱われ、特殊文字がない (存在する場合はエスケープする) と仮定し
\"ますquote
[^"]は、引用符を除く任意の文字を意味します (^これが「例外」となります)

また、このリンクが役立つ場合があります。正規表現は強力な表現であり、事実上すべての言語に適用できるため、これらを快適に使用できるようになるとよいでしょう。

編集:

他のいくつかのポスターが指摘しているよう^に、最初と$最後への追加は、行全体が一致する場合にのみ一致します。

^行頭に
$一致 行末に一致

于 2013-02-21T17:31:48.137 に答える
0

^。*\s + SPECIFICWORD "$

'^'は行の先頭から'に一致します'。*はすべてに一致します\s+は'任意の量の空白に一致しますが、少なくとも一部の'SPECIFICWORD"は文字列リテラルです

^と$は常に「行」ベースであるとは限らないことに注意してください。ほとんどの言語では、一度に1行ではなく、「文字列の開始/文字列の終了」と一致させる「複数行」モードを指定できます。

于 2013-02-21T17:33:18.047 に答える
0

試す:

\"[\w\s]*SPECIFICWORD\"

このように動作します:

\" 冒頭の引用に一致

[\w\s]*次のセットの0個以上の文字に一致します。

  • [a-zA-Z_0-9]\w一部)

  • [ \t\n\x0B\f\r]\s一部)

SPECIFICWORD一致しますSPECIFICWORD

\" 終値に一致

于 2013-02-21T17:33:25.473 に答える
0

この文字列は行ごとに一致しますか、それともテキスト内にありますか? その場合は、文字列と一致するようにアンカーを追加できます。

^(\".*\sSPECIFICWPRD\")$

つまり、行の先頭で、二重引用符の後に 0 個以上のランダムな文字が続き、その後に 1 つの空白が続き、その後に特定の単語が続き、文字列の末尾に二重引用符が続きます。

オプションで、正規表現パターンを設計し、リアルタイムで一致するものを確認するための優れたツールがあります。

以下にいくつかの例を示します。

http://gskinner.com/RegExr/ http://regex101.com/r/zC3fM1

于 2013-02-21T17:42:20.117 に答える