引用符の1つがエスケープされている場合は、文字列の強調表示を解除しようとします。
sh.nanorc
正規表現は次のとおりです。
color brightyellow ""(\\.|[^"])*""
閉じる引用符の前に次を追加して、閉じる引用符を正常に完了しました[^\\]
。
color brightyellow ""(\\.|[^"])*"[^\\]"
ただし、開いているシンボルに対して同じ操作を実行すると、操作の実行中に開いている引用符がエスケープされない場合、または文字列が行の先頭から始まる場合、文字列の前にある他の記号も着色され始めます。 、文字列は無色です。
それでは、2つの引用符を使用してきちんと行う方法は何ですか?
答え1
最良の方法は負の数を使用することです後ろを見て。ただし、nanoはPOSIX ERE(拡張正規表現)正規表現エンジンを使用しているため、単一の正規表現ではこれを実行できません。解決策が必要ですが、完璧ではありません。
色の変更が上から下に適用されることを利用できます。したがって、まず古い正規表現を使用してください。次に、その下で\\
開く引用符と閉じる引用符(エスケープされたバックスラッシュ)の前に同じ正規表現を使用します。デフォルトの色を指定します。
たとえば、
color brightyellow ""[^"]*""
color white "\\"[^"]*\\""