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
전방탐색과 후방탐색을 이용하여 (
이후의 오는 문자열과 )
이전에 오는 문자열을 추출하면 된다.