문자열의 위치


정규표현식은 문자열을 위치에 따라서 특정할 수 있다. 즉 해당 문자열이 행의 시작에 있는지 끝에 있는지에 따라 구별하여 특정할 수 있고, 단어의 시작인지 끝에 위치한 것인지를 특정할 수 있다. 


캐럿(^)과 달러($)


앞선 문자 클래스 포스팅에서 캐럿(^)이 문자 클래스에서 not의 의미로 쓰이는 것을 언급한 바 있다. 하지만 캐럿(^)이 문자 클래스 외에서 쓰일 때에는 행의 첫 문자를 의미한다. 그리고 달러($)는 정규표현식에서 행의 끝 문자를 의미한다.


캐럿(^)달러($)를 사용할 경우 캐럿(^)은 탐색하고자 하는 문자열의 에 와야 하고 달러($)에 와야 한다


정규표현식 ^cat 행의 맨 앞cat 문자열이 있을 경우 일치

정규표현식 cat$ 행의 맨 뒤cat 문자열이 있을 경우 일치


위에서 작성한 정규표현식으로 탐색한 결과는 다음과 같이 나타난다.



단어의 시작(\<)과 끝(\>)


정규표현식으로 행의 시작과 끝에 있는 문자열을 특정할 수 있듯이 단어의 시작과 끝에 있는 문자열을 특정할 수 있다. 단어의 시작\< 로 나타내고 단어의 끝\> 로 나타낸다.

 

앞서 언급한 캐럿(^)달러($)처럼 단어의 시작(\<)은 찾고자 하는 문자열의 에 와야 하고 단어의 끝(\>)에 와야 한다.

 

정규표현식 \<c.t 단어의 맨 앞ct 형식의 문자열이 있을 경우 일치(○은 임의의 문자 한 개)

정규표현식 c.t\> 단어의 맨 뒤ct 형식의 문자열이 있을 경우 일치(○은 임의의 문자 한 개)


해당 정규표현식으로 탐색한 결과는 다음과 같이 나타난다.



사진을 보면 알겠지만 단어들은 (.), 아포스트로피() 등으로 구분된다.


Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 


030 vim의 정규표현식(4) 문자열의 위치.apkg



+ Recent posts