vim 정규표현식에서 or(\|) 사용하기
vim의 정규표현식에서 or은 \| 즉, 역슬래쉬버티컬바로 나타낸다. 이 or(\|)은 다음과 같은 형식으로 쓴다.
문자열1\|문자열2 → 문자열1이거나 문자열2와 일치한다.
가령, 탐색하는 문자열이 cat이거나 dog이라면 그 정규표현식은 다음과 같다.
cat\|dog
어떤 문자열 중에 첫 번째 글자가 대문자인지 소문자인지 여부와 상관없이 모두 찾고자 하면 보통 문자 클래스를 이용한다. 가령 Cat과 cat을 동시에 찾고 싶다면 문자 클래스를 이용하여 다음과 같이 작성하면 된다.
[Cc]at → Cat와 cat를 모두 찾는다.
이와 비슷한 표현을 조금 복잡하지만 or(\|)로 다음과 같이 할 수 있다.
\(C\|c\)at
→ \(와 \) 사이에 C\|c 를 배치해서 Cat와 cat를 모두 찾는다.
\(와 \) 로 인하여 매우 복잡하게 보인다. 그냥 문자 클래스([ ])로 쓰는 것이 편하지 않을까? 앞에 보여준 예에서는 단 한 개의 글자가 대문자이거나 소문자인 것을 선택하는 것이므로 문자 클래스([ ])가 더 쓰기 편하다. 하지만 여러 개의 문자열 중 하나를 선택할 경우에는 or(\|)을 \(와 \) 사이에 배치하는 편이 더 쓰기 편하다.
가령, 다음과 같은 일련의 파일 이름에서 cat.jpg, anmimal.jpg, dog.jpg 에만 해당하는 정규표현식은 다음과 같다.
cat.jpg
cat.avi
animal.jpg
animal.avi
dog.jpg
dog.avi
\(cat\|animal\|dog\)\.jpg
※ 역슬래쉬점(\.)은 점(.)을 어떤 임의의 한 개의 문자를 의미하는 특수한 용도로 사용하지 말고 점(.) 문자 그 자체로만 인식하라는 의미
Anki 파일
아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다.
'Anki로 공부하기 > vi 또는 vim 익히기' 카테고리의 다른 글
033 vim의 정규표현식(7) 반복 (0) | 2018.06.16 |
---|---|
032 vim의 정규표현식(6) 특수 문자 (0) | 2018.06.14 |
030 vim의 정규표현식(4) 문자열의 위치 (1) | 2018.06.12 |
029 vim의 정규표현식(3) 점(.) (0) | 2018.06.11 |
028 vim의 정규표현식(2) 문자 클래스 (0) | 2018.06.08 |