IT 삽질기

python 정규표현식 사용하기(1) 본문

개발/python

python 정규표현식 사용하기(1)

화이팅빌런 2021. 8. 15. 22:55

이번 글에서는 python에서 정규표현식을 사용하는 방법에 대해서 알아보도록 하자.

정규표현식에 대한 내용은 이전 글을 참고하기 바란다.

2021.08.10 - [개발] - 정규표현식(Regex)이란?

 

python 정규표현식 패키지 re

python에서 정규표현식을 사용하기 위해서는 re(regular expression) 패키지를 사용한다.

re패키지를 사용하는 예제를 살펴보도록 하자. 정규표현식의 패턴을 만들기 위해 re.compile()을 사용한다.

이전 글에서 작성했던 것처럼 정규표현식으로 H로 시작해서 o로 끝나는 문자열을 찾는 패턴을 만들었다. 일치하는 패턴을 찾기 위해서 사용할 수 있는 method를 예제와 함께 확인해보자.

re에서 제공하는 method

만든 패턴을 이용해 메서드를 이용하여 매칭 결과를 얻을 수 있는데, 제공하는 메서드들은 아래와 같다.

method 결과
match() 문자열의 처음부터 정규표현식과 매치되는지 확인
search() 문자열 전체를 검색해 정규식과 매치되는지 확인
findall() 정규식과 매치되는 모든 문자열을 리스트로 return
finditer() 정규식과 매치되는 모든 문자열을 반복 가능한 객체로 return

match()

Hello, Hello World는 모두 매칭이 되었고, 어디까지 매칭이 되었는지 결과를 확인할 수 있다.

그러나 World Hello에서는 Hello를 찾지 못했는데, python에서 match를 사용하는 경우 문자열의 처음부터 찾게 되기 때문에 World Hello에 있는 Hello는 매칭되지 않았다.

match()에서 return 받은 객체를 사용하는 방법에 대해 알아보자.

method 결과
group() 매칭되는 결과의 문자열을 return
start() 매칭 결과 문자열의 시작 index return
end() 매칭 결과 문자열의 끝 index return
span() 매칭 결과 문자열 (시작index, 끝index) return

매칭 결과에서 제공하는 method들은 아래의 다른 method에서도 공통으로 사용할 수 있다.

search()

문자열 전체에서 정규식과 매칭되는 값들을 확인

위의 match와 다르게 문자열의 중간에 있는 Hello도 함께 매칭되는 것을 확인할 수 있다.

search()는 정규식에 포함되는 문자열에 여러개 있어도 제일 먼저 매칭되는 하나의 문자열에 대해서만 알 수 있음을 주의하자. match()와 search()는 정규식에 매칭되는 문자열이 있는지 없는지를 판단하기 위한 용도로 주로 사용되며, if문과 함께 사용할 수 있다.

findall()

정규식과 매칭되는 모든 문자열을 list형식으로 반환

명확한 결과 확인을 위해 정규식을 변경했다. 작성한 정규식에 매칭되는 문자열은 아래와 같다.

Haaao, Haaaao, Haaaaao

findall()은 정규식과 매칭되는 결과를 list형식으로 반환한다.

finditer()

finditer()은 정규식과 매칭되는 문자열을 반복 가능한 객체로 반환한다고 했는데, match(), search()에서 반환된 것과 같이 group(), start(), end(), span()등의 메서드를 사용할 수 있다.

이렇게 이번 글에서는 python에서 정규식을 사용하는 기본적인 방법에 대해서 알아보았다.

다음 글에서는 추가적으로 사용할 수 있는 옵션들에 대해 정리하도록 하겠다.

2021.08.16 - [개발/python] - python 정규표현식 사용하기(2)

 

참고자료

https://wikidocs.net/4308

'개발 > python' 카테고리의 다른 글

python Namedtuple 사용하기  (0) 2021.08.26
python 정규표현식 사용하기(2)  (0) 2021.08.16
python datetime <-> 문자열 변경하기  (0) 2021.08.07
windows에 jupyter설치하기  (0) 2021.08.05
windows에 python 설치  (0) 2021.08.04
Comments