次のような線がいくつかあります
\node[ ... Some code here ... { ... some more code
\node[ ... Some code here ... { ... some more code
\node[ ... Some code here ... { ... some more code
各行で、 から[
までのコードを{
自分のコードに置き換えたいと思います。
\node
常に各行の先頭にあります。{
はない行の末尾に。
私はすでに(ここで)^\\node.*\{
やのようなものを見つけて試しましたが、どちらも同じ不満足な結果になります。つまり、ドキュメントの\\node.*\{
最後までコード全体がマークされます。{
答え1
実際のところ、Wrap around を有効にしてもまったく問題ありません。実際、有効にすることをお勧めします。
フラグメントは行の先頭にあることが保証されているため、キャレット ( ^
) アンカーを使用できます。
私の場合は次の方法が使えます:
検索: ^\\node\[[^{]*\{
; 置換:\\node[test{
^
行の先頭にアンカーします。特殊文字をエスケープした後、\\node\[
テキストと一致します。開き中括弧を除くすべての文字を取得します。(ここでは、文字クラス内にあるためエスケープする必要がないことに注意してください。)次に、開き中括弧自体を取得します。\node[
[^{]*
{
\{
もし ... Some code here ...
中括弧を含めることができます:
検索: ^\\node\[.*\{([^{]*)$
; 置換:\\node[test{$1
最初の部分は同じです。次に、.*
は可能な限り多くの文字に一致します。\{
は開き中括弧に一致し、([^{]*)$
行末までのすべての文字に一致してキャプチャします。が[^{]
指定されているため、開き中括弧には一致しないため、前の部分は行の\{
最後の文字に一致する必要があります。{
答え2
[検索/置換] ダイアログで、[検索する文字列] を使用します。ノード[。*{次のように置き換えます:ノード[テスト{正常に置換...ここにコードがいくつか...とテスト各行に。
次のオプションを指定する必要があります。
- 「折り返す」にチェックを入れないでください
- 「正規表現」にチェックを入れる
- 「. は改行に一致します」をチェックしないでください。