Nano는 따옴표가 이스케이프된 경우 문자열을 강조 표시 해제합니다.

Nano는 따옴표가 이스케이프된 경우 문자열을 강조 표시 해제합니다.

따옴표 중 하나가 이스케이프된 경우 문자열의 강조 표시를 해제하려고 합니다.

sh.nanorc정규식은 다음과 같습니다.
color brightyellow ""(\\.|[^"])*""

닫는 인용문 앞에 다음을 추가하여 닫는 인용문을 성공적으로 완성했습니다 [^\\].
color brightyellow ""(\\.|[^"])*"[^\\]"

그러나 여는 기호에 대해 동일한 작업을 수행하면 작업을 수행하는 동안 여는 따옴표가 이스케이프되지 않거나 문자열이 줄의 시작 부분에서 시작하는 경우 문자열 앞의 다른 기호도 색칠되기 시작합니다. , 문자열은 무색입니다.

그렇다면 두 개의 따옴표를 사용하여 깔끔하게 수행하는 방법은 무엇입니까?

답변1

가장 좋은 방법은 음수를 사용하는 것입니다뒤를 봐. 그러나 nano는 POSIX ERE(확장 정규식) 정규식 엔진을 사용하므로 단일 정규식으로는 이를 수행할 수 없습니다. 해결 방법이 필요하지만 완벽하지는 않습니다.

색상 변경이 위에서 아래로 적용된다는 점을 활용할 수 있습니다. 따라서 먼저 오래된 정규식을 사용하세요. 그런 다음 그 아래에서 \\여는 따옴표와 닫는 따옴표(이스케이프된 백슬래시) 앞에 동일한 정규식을 사용합니다 . 기본 색상을 지정하십시오.

예를 들어:

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

관련 정보