본문 바로가기
프로그래밍 놀이터/Tips

[도서 정리] 2. 문자 하나 찾기 - 손에 잡히는 10분 정규 표현식

by 돼지왕왕돼지 2019. 12. 24.

2. 문자 하나 찾기 - 손에 잡히는 10분 정규 표현식



* 문자 그대로 찾기


-

Ben 은 정규식이다.

평범한 텍스트여서 정규식처럼 보이지 않을지 몰라도 확실히 정규 표현식이다.

처리 과정을 보면 평범한 텍스트만으로 이루어진 정규식은 완전히 낭비이긴 하다.



** 얼마나 많이 일치하는가?


-

대다수 정규식 엔진은 기본으로 가장 처음 일치한 텍스트를 반환한다.

대다수 정규식 구현에서는 일치하는 목록 모두 얻을 수 있다.



** 대소문자 다루기


-

정규식에서는 대소문자를 구별하기 때문에 Ben 은 ben 과 일치하지 않는다고 인식한다.

하지만 대다수 정규식 구현에는 대소문자 구별을 무시하는 기능이 있다.





 * 모든 문자 찾기


-

정규식에서는 특별한 문자들 혹은 문자 집합들을 써서 무엇을 검색할지 결정한다.

마침표(.) 문자는 아무 문자 하나와 일치한다.

c.t 를 검색하면, cat, cot 등 무수히 많은 단어들과 일치한다.


여기서 마침표는 어떠한 문자나 알파벳, 숫자, 심지어는 문장 부호로 쓰인 마침표(.) 자체와도 일치한다.

(돼왕: 기본적으로 white space 는 match, line break 는 match 하지 않는다. )



-

마침표(.) 여러 개를 동시에 사용할 수도 있다.

.. 처럼 연속해 사용하면 어떤 문자든 붙어 있는 문자 두 개와 일치한다.

아니면 서로 다른 위치에 사용할 수도 있다.





* 특수문자 찾기


-

마침표(.)는 정규 표현식에서 특별한 의미가 있다.

따라서 진짜 마침표(.)를 찾으려 한다면 특별한 의미의 마침표가 아니라 진짜 마침표를 찾고 싶다고 알려주어야 한다.

마침표(.) 앞에 역슬레시(\)를 붙이면 된다.

역슬래시는 메타 문자(일반적으로 문자 그대로 사용되지 않고 특별한 의미를 지니는 문자를 칭한다.)다.





* 요약


-

정규식 혹은 패턴은 문자들로 이루어진 문자열이다.

이러한 문자들은 그냥 의미 그대로의 문자일 수도 있고 메타 문자(특별한 의미를 지닌 특수문자)일 수도 있다.

마침표(.)는 어떤 문자와도 일치한다.

역슬래시(\)는 문자들이 문자 그대로 해석되게 하며(이스케이프), 특수한 문자 시퀀스를 시작하는 데 사용된다.




댓글0