👉 에러를 포함한 로그에서 원하는 특정 패턴을 갖는 문자열을 찾기 위해 사용된다.
에러가 로그파일에 저장되어서 찾기 힘들경우 사용하면 용이할 것 같다..!
import re
search_target = '''Luke Skywarker 02-123-4567 luke@daum.net
다스베이더 070-9999-9999 darth_vader@gmail.com
princess leia 010 2454 3457 leia@gmail.com'''
👉 \d: digit -> 숫자 하나를 찾는 표현식
regex1 = r'\d'
result1 = re.findall(regex1, search_target)
print(" ".join(result1))
👉 \w: word-> 문자 하나를 찾는 표현식
regex2 = r'\w'
result2 = re.findall(regex2, search_target)
print(" ".join(result2))
👉 \d+: digit+ -> 숫자 하나 이상을 찾는 표현식
regex3 = r'\d+'
result3 = re.findall(regex3, search_target)
print(" ".join(result3))
👉 [1-9]\d+: 앞자리가 0이 아닌 두 자리 이상의 숫자를 찾는 표현식
regex4 = r'[1-9]\d+'
result4 = re.findall(regex4, search_target)
print(" ".join(result4))
👉 [1-9]\d*: -> 앞자리가 0이 아닌 한 자리 또는 두 자리 이상의 숫자를 찾는 표현식
regex5 = r'[1-9]\d*'
result5 = re.findall(regex5, search_target)
print(" ".join(result5))
👉 '\d+-?\d+-?\d+: -> "숫자-숫자-숫자" 를 찾는 표현식
regex6 = r'\d+-?\d+-?\d+'
result6 = re.findall(regex6, search_target)
print(" ".join(result6))
import re
search_target = '''이상한 전화번호 0030589-5-95826
Luke Skywarker 02-123-4567 luke@daum.net
다스베이더 070-9999-9999 darth_vader@gmail.com
princess leia 010 2454 3457 leia@gmail.com'''
👉 \d+[- ]?\d+[- ]?\d+: -> "숫자-숫자-숫자" 를 찾는 표현식
regex1 = r'\d+[- ]?\d+[- ]?\d+'
result1 = re.findall(regex1, search_target)
print(result1)
👉 {n}: 숫자, 문자 또는 기호가 n번 나오는 문자열을 찾는 표현식
regex2 = r'\d{2}[- ]?\d{3}[- ]?\d{4}'
result2 = re.findall(regex2, search_target)
print(result2)
👉 {n,m}: n~m번 나오는 문자열 찾는 표현식
regex3 = r'\d{2,3}[- ]?\d{3,4}[- ]?\d{4}'
result3 = re.findall(regex3, search_target)
print(result3)
import re
search_target = '''Luke Skywarker 02-123-4567 luke@daum.net
다스베이더 070-9999-9999 darth_vader@gmail.com
princess leia 010 2454 3457 leia@gmail.com'''
👉 []: 모음선택 => 대괄호 안의 글자를 모두 선택하고 싶을 때 사용하는 표현식
regex1 = r'[aeiou]'
result1 = re.findall(regex1, search_target)
print(" ".join(result1))
👉 [a-z]: 소문자를 찾는 표현식
regex2 = r'[a-z]'
result2 = re.findall(regex2, search_target)
print(" ".join(result2))
👉 [a-z]+: 소문자로 구성된 문자열을 찾는 표현식
regex3 = r'[a-z]+'
result3 = re.findall(regex3, search_target)
print(" ".join(result3))
👉 [가-힣]+: 연속된 한글단어 선택
regex4 = r'[가-힣]+'
result4 = re.findall(regex4, search_target)
print(" ".join(result4))
정규표현식의 meta sequence는 위 보다 훨씬 많을건데, 나중에 찾아서 쓰는걸로..!
ref.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_Expressions