정규표현식

alirz-pixel·2022년 11월 9일
0

python

목록 보기
4/5

정규표현식

flags

flag설명
g문자열 내의 모든 패턴을 찾음
i대소문자를 구별하지 않고 찾음
m다중 행 모드 활성화 (개행문자가 포함된 경우에서 ^와 $를 사용할 때 유용)
s.(모든 문자 정규식)이 개행 문자(\n)도 포함하도록 dotall 모드 활성화
u유니코드 전체를 지원

숫자 추출

숫자 추출의 경우, 13,412와 같이 숫자가 연속적으로 오지 않는 경우가 존재하기 때문에
일반 정규표현식으로는 13412를 추출할 수 없다.

따라서 pattern과 일치하는 문자들을 다른 언어로 대체하는 함수를 사용해서 숫자를 추출해야한다.

# ex) python
input_str = "이 문자열 13,412 에서 숫자만 추출하기"
re.sub(r'[^0-9]', '', input_str) # input_str에서 정규식 [^0-9]에 해당하는 문자를 ''로 대체

전방탐색

기호 : ?=
의미 : = 다음에 오는 문자를 기준으로 앞의 문자열을 탐색함 (부정은 =대신 !을 사용하면 됨)
사용 : 전방탐색 사용시에는 소괄호로 감싸주어야함

input   : https://www.abc.com
regexp : .*(?=:)
result   : https

후방탐색

기호 : ?<=
의미 : = 다음에 오는 문자를 기준으로 뒤의 문자열을 탐색함 (부정은 =대신 !을 사용하면 됨)
사용 : 전방탐색 사용시에는 소괄호로 감싸주어야함

input   : 1: $591.99
regexp : (?<=\$).*
result   : 591.99


소괄호속 문자열 찾기

input   : ase(asd8wa)4
regexp : (?<=\().*(?=\))
result   : asd8wa

전방탐색과 후방탐색을 이용하여 ( 이후의 오는 문자열과 ) 이전에 오는 문자열을 추출하면 된다.

0개의 댓글