質問

一部のLaTeXドキュメントを再構築されたテキストに変換し、Visual Studio 2003の正規表現に問題があります。次のfind /を使用して\ emph {text}を* text *に変換しようとしています。文字列を置換:

\\emph\{([^\}]*)\} 

*\0*

ただし、このペアを使用すると、\ emph {text}が* \ emph {text} *に変換されますが、これは予期したものではありませんでした。 * \ 0 *ではなく* \ 1 *を使用すると、置換結果として**が返されます。

グループ化ルールについて何が欠けているのか、または理解できないのか

ありがとう。

役に立ちましたか?

解決

VS正規表現置換構文では、\ 0は一致した文字列全体であり、\ 1は最初にキャプチャされた変数の内容です(\ 2は2番目など)。したがって:

  

\ 0

     

ただし、このペアを使用すると   \ emph {text}は* \ emph {text} *に変換されます   それは私が期待したものではありませんでした。

このように、\ 0は一致した文字列全体です。

  

* \ 0 *ではなく* \ 1 *を使用すると、置換結果として**が返されます。

おそらく、キャプチャクラスに一致するものはありません。

詳細を追加するには、キャプチャクラスを定義するための構文(ドキュメント)は、ここで使用している括弧()ではなく、中括弧{}を使用しています。おそらく、これは「検索」として機能します。式:

\\emph\{{[^\}]*}\} 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top