본문 바로가기
데이터 처리/데이터 처리

파이썬 | 정규표현식 (re) re.compile 사용을 위한 표현법 정리 OR(|), *, + , ?, {}

by Jun_N 2020. 6. 24.

 

이전 포스팅에서는 대괄호([]) , 이스케이프(\), 마침표(.), 그외 문자 집합에 대해 알아봤었다. 

 

기본적인 정규표현식 기초 OR(|), *, + , ?, {} 에 대해서 알아보도록 하겠다.

 

| : 다자 택일

단어 '하나' , '둘', '셋' 중 하나에 대응하고 싶다면 | 를 써서 다자택일 한다. ( OR 느낌)

 

하지만 순서에 따라서 결과가 바뀔 수도 있다. (one, oneself) 

이런 경우 단어의 경계를 사용하여 해결하면 된다.

 

\bone\b | \bonewself\b

 

 

* : 0회 이상 반복

 

어떤 문자나 기호 뒤에 * (Asterisk)를 붙여서 그 문자가 일치되는 만큼 찾는다.

 

예를 들어 A* 는 'A'나 'AAA" , "" (빈문자열) 과도 일치한다.

 

하지만 빈문자열도 List에 들어가서 좋은 방법은 아니다.

 

+ : 1회 이상 반복

*과 비슷하지만 한 번이라도 등장해야 된다.

이건 빈 문자열은 일치하지 않게 된다.

 

 

{n,m} : 지정 횟수반복

중괄호는 지정한 횟수만큼 정규식 반복하는것.

 

1. {n}  : 정확히 n회만큼 반복

2. {n,m} : n이상 m이하 반복

3. {n, } : n이상 반복 (무한 가능)

 

re.findall('a{3}', 'aaaaaaaa'))

 

결과 : ['aaa', 'aaa']

 

 

? : 0회 또는 1회 반복

 

re.findall('ab?a' , 'aa aba aaaa')

 

결과 : ['aa', 'aba', 'aa', 'aa']