정규식(vim)에서 "다음 알 수 없는 수의 문자에 지정된 기호가 있습니다"를 표현하는 방법은 무엇입니까?

정규식(vim)에서 "다음 알 수 없는 수의 문자에 지정된 기호가 있습니다"를 표현하는 방법은 무엇입니까?

내 마크다운 파일에는 Python 코드 예제가 많이 있으며 >>>기호로 시작해야 합니다.

그래서 나는 그 일을 수행하기 위해 vim 함수를 작성했습니다.

function AddShellPrompt() range
    let lnum = a:firstline
    while lnum <= a:lastline
        let replaced_line = substitute(getline(lnum), '^\s\+', '&>>>', '')
        call setline(lnum, replaced_line)
        let lnum += 1
    endwhile
endfunction

문제는 다음과 같은 원시 텍스트의 경우입니다.

pow(2, 3)
8

>>>before 에만 추가하면 되지만 pow(2, 3)before 에는 추가하면 안 됩니다 8. 그래서 정규 표현식을 확장해야 합니다. 나는 문자가 포함된 줄만
추가하면 어떨까 생각했습니다 . (완벽하지는 않지만) 꽤 좋은 결과를 얻을 수 있습니다.>>>+-*/%(=

하지만 문제는 정규 표현식(특히 vim에서)을 작성하여 표현하는 방법입니다.주어진 세트의 일부 문자가 현재 줄에 이미 나타납니까?

답변1

vim정규식 엔진 지원대괄호 표현, 대괄호로 묶인 문자 시퀀스로 문자 클래스를 정의할 수 있습니다 [...].

/[+\-*/%(=]/

-이 문자 중 하나와 일치합니다( 문자 그대로 일치시키려면 문자 사이의 범위를 정의하는 escape 가 필요합니다 ).

현재 줄에 문자 집합이 포함되어 있는지 확인하려면 다음을 수행하세요.

if getline(".") =~ '[+\-*/%(=]'
  echo "Match"
endif

관련 정보