ラテックス文書の引用符を置き換えたいと思います。これはドイツ語で書かれています。つまり、すべての引用符は "'text' 'の形式でなければなりませんが、文書の一部の編集者は" text "、" text "を使用しています。 ここで問題になるのは、文書にlstlisting環境を使って強調表示されたコードが含まれているということです。そこに引用符を置き換えてはいけません。 、私も(この場合は「ASDF」)の文字列にマッチする正規表現を、持っている正規表現は一致しますが、ラテックス環境では一致しません
((``((\w+\s*)+)'')|("((\w+\s*)+)"))
:
は、私は複数の単語がある場合でも、不要な引用符内のテキストに一致する正規表現を、持っていますそれはlstlisting環境内にない場合にのみ:
"asdf"(?=((?!\\end\{lstlisting\}).)*\\begin\{lstlisting\}?)
彼らは自分自身で正常に動作しますが、私はこのようにそれらを結合する場合:
((``((\w+\s*)+)'')|("((\w+\s*)+)"))(?=((?!\\end\{lstlisting\}).)*\\begin\{lstlisting\}?)
引用符で囲まれた文字列の一部は一致していてはならず、さらにドキュメント全体が一致しています。
PS:私は現在、notepad ++を使用しています。それは限り、私は一つの言葉に最初の部分を制限するよう、正常に動作します:
((``((\w)+)'')|("((\w)+)"))(?=((?!\\end\{lstlisting\}).)*\\begin\{lstlisting\}?)
*それらは、単独ではうまく動作しますが、それらを組み合わせると、*うまく動作します - 組み合わせて実行しないでください。 –
最初の正規表現で見つかった文字列と一致させたいが、2番目の正規表現で制約されている場合のみ、それらを組み合わせる必要がある。 – Mopsi
あなたは '((\ {\\ end {{lstlisting \}))?((((\)+) ')))(? )* \ begin \ {lstlisting \}?) 'は一単語でうまく動作します。しかし '\ w +'は一つの単語にマッチします。 * \\ begin \ {lstlisting \}?)?(\\ begin \ {lstlisting \}?)?) ' –