Nanoは、引用符がエスケープされている場合、文字列を強調表示解除します。

Nanoは、引用符がエスケープされている場合、文字列を強調表示解除します。

引用符の1つがエスケープされている場合は、文字列の強調表示を解除しようとします。

sh.nanorc正規表現は次のとおりです。
color brightyellow ""(\\.|[^"])*""

閉じる引用符の前に次を追加して、閉じる引用符を正常に完了しました[^\\]
color brightyellow ""(\\.|[^"])*"[^\\]"

ただし、開いているシンボルに対して同じ操作を実行すると、操作の実行中に開いている引用符がエスケープされない場合、または文字列が行の先頭から始まる場合、文字列の前にある他の記号も着色され始めます。 、文字列は無色です。

それでは、2つの引用符を使用してきちんと行う方法は何ですか?

答え1

最良の方法は負の数を使用することです後ろを見て。ただし、nanoはPOSIX ERE(拡張正規表現)正規表現エンジンを使用しているため、単一の正規表現ではこれを実行できません。解決策が必要ですが、完璧ではありません。

色の変更が上から下に適用されることを利用できます。したがって、まず古い正規表現を使用してください。次に、その下で\\開く引用符と閉じる引用符(エスケープされたバックスラッシュ)の前に同じ正規表現を使用します。デフォルトの色を指定します。

たとえば、

color brightyellow ""[^"]*""
color white "\\"[^"]*\\""

関連情報