連続する行で同様の値を持つ2つの文字列を見つけるために、どの正規表現パターンを使用する必要がありますか
たとえば、次のようなものがある場合:
(注:次の値はすでに前面にインデントされています)
end
end
viエディターを使用してこれを検索するにはどうすればよいですか?
編集
I would like it to match " end" and " end" or " end" and " end"
非常に簡単です:
/pattern\npattern/
pattern
あなたが見つけたいものはどこにありますか。あなたの質問は曖昧すぎて、より有用な答えは得られません。
値がインデントされていると述べたので...このパターンを使用して、この問題を解決できます。
/end\n\s*end
空白の\s
略で、タブまたはスペースのいずれかになります。つまり、前の文字(この*
場合は空白)が存在しないか、無限に存在する可能性があります。2つのスペースを一致させたい場合は、/end\n end
またはを使用できます/end\n\s\send
。4つを一致させたい場合は、同様にそれらをすべて入力するか、/end\n\s\{4}end
4つの空白文字(スペースまたはタブ)のみを一致させることができます。
あなたが本当にやりたいのは、同じ線を一致させることだと思います。だからあなたはそれ/\(^.*$\)\n\1
を達成するために行うことができます。特定の数の同一の行が必要な場合は、実行できます(この例では、15を使用しますが、任意の数に変更するか、任意の一致に/\(^.*$\)\(\n\1\)\{15}
切り替えることができます。\{15}
*