Vim 정규식: +는 이스케이프되어야 하지만 *는 이스케이프되지 않습니다. 왜?

Vim 정규식: +는 이스케이프되어야 하지만 *는 이스케이프되지 않습니다. 왜?

선택적 공백, 그 뒤에 양의 정수, 그 뒤에 더 많은 선택적 공백이 오는 줄을 선택한다고 가정합니다.

이를 위해 작동하는 정규식은 다음과 같습니다.

:g/^\s*\d\+\s*/

연산자 *는 이스케이프되지 않지만 연산자는 이스케이프 +됩니다. 이스케이프하면 *정규식이 중단됩니다. un-escaping 도 마찬가지입니다 +.

이에 대한 좋은 설명이 있습니까? 이상적으로는 규칙을 직관적으로 만드는 것입니다. vim에서는 특이한 이스케이프 규칙 때문에 정규식을 작성하는 데 항상 어려움을 겪었기 때문에 모든 것을 클릭하게 만드는 통찰력이 마음에 듭니다.

답변1

이는 역사적인 이유로 변경되면 호환성이 손상될 수 있습니다. 그러나 "매우 마법"을 켜기 위해 패턴 앞에 를 붙일 수 있으므로 \v특별한 이스케이프를 수행할 필요가 없습니다. 보다 :help /\v.

관련 정보