私はNotepad++でRegexを使用して、以下のような一般的なパターンに一致させようとしています。
/*
<FooBar>(<--find open bracket and end on finding a closing bracket-->)
<FooBar> (foo
bar);
<FooBar> (foo
bar
baz)
*/
私は以下を使用して一致させようとしています:
^\s*?<FooBar>\s+?.+?\(.*?\)
「改行に一致」が有効になっていますが、意図したとおりに機能していません。ブックマークされた行は上記の空白行に表示され、必要なすべての行をブックマークできません。
この正規表現を使用して、「ファイル内検索」を使用して一致する複数のファイルを検索したいと思います。
だから私はいくつかのことを見つけました。複数行を使用しているため、\s*はfoobarに到達する前に一致します。したがって、置き換えてすべてのバックラインを削除します
^\s+
何もせずにこの問題を解決します。
^\s*<foobar>\s+.+?\(.*?\)
必要なものと完全に一致しますが、1つの問題があります。それは、notepad ++がマークされたすべての行をブックマークするのではなく、検索の開始のみをブックマークすることです。複数行の検索の場合は、一致する最初の行をブックマークするだけです(ただし、残りはマークされます)。つまり、「ファイル内検索」を使用して検索すると、ブックマークされた行のみが返されるため、あまり役に立ちません。
ただし、[検索]-> [ブックマークされていない行を削除]を選択すると、マークされていない行をすべて削除できますが、バッチ検索を実行する必要があるため、これは問題外のようです。
ただし、editpad proなど、他のエディターはマークされたすべての行を返します。