# 정규표현식
<fragment-block fade-up>
정규표현식의 사전적인 의미
</fragment-block>
<fragment-block fade-up>
특정한 규칙을 가진
문자열의 집합을 표현하는데 사용하는
형식 언어
</fragment-block>
—- https://goo.gl/R1cQZo?.png bg-zoom slide slow —→
정규표현식 사용해보기
<fragment-block fade-up>
# 따옴표(')로 둘러쌓인 부분에 원하는 정규표현식을 적습니다. regex = r'0\d{1,2}[ -]?\d{3,4}[ -]?\d{3,4}' # 전화번호를 찾는 정규표현식 # 주소록입니다. 이후 강의에서 모두 이 search_target을 사용합니다. search_target = '''Luke Skywarker 02-123-4567 [email protected] 다스베이더 070-9999-9999 [email protected] princess leia 010 2454 3457 [email protected]''' # 정규표현식과 일치하는 부분을 모두 찾아주는 파이썬 코드입니다. import re result = re.findall(regex, search_target) print("\n".join(result))
</fragment-block>
<fragment-block fade-up>
결과
- snippet.python
02-123-4567 070-9999-9999 010 2454 3457
</fragment-block>
—- https://goo.gl/diUgLg?.png bg-zoom slide slow —→
http://repl.it/
실습은 이곳에서 진행합니다.
<fragment-block fade-up>
REPL : Read-Eval-Print Loop의 약자로 스칼라, 파이썬 등 대화형 환경
콘솔에서 컴파일 없이 코드를 입력하고 출력 결과를 확인 할 수 있는 환경
</fragment-block>
—- https://goo.gl/diUgLg?.png bg-zoom slide slow —→
Python3을 선택합니다.vWhg5j
<fragment-block fade-up>
실행화면
4XLb32
</fragment-block>
—- https://goo.gl/c5DKSv?.png bg-zoom slide slow —→
구성요소
## 메타 문자
<fragment highlight-current-red>. (dot)</fragment>
<fragment highlight> : 숫자와 문자 특수기호, 공백 등을 포괄한 모든 범위의 한 글자 SotRqm</fragment>
<fragment highlight-current-red>^ (circumflex)</fragment>
<fragment> : 문자열의 시작점. 그러나 일반적으로는 한 줄의 시작점을 의미한다. 문자클래스 집합에서는 다른 의미를 갖는다.mcyQB7</fragment>
<fragment highlight-current-red>$ (dollar)</fragment>
<fragment> : 문자열의 끝점. 그러나 일반적으로는 한 줄의 끝점을 의미한다.UegnzB</fragment>
<fragment highlight-current-red>\ (back slash)</fragment>
<fragment> : 메타문자를 검색하기 위하여 특수문자 앞에 사용한다. 마침표 .
를 찾기 위해 \.
을 사용한다.</fragment>
<fragment highlight-current-red>| (vertical bar)</fragment>
<fragment> : '또는'을 의미한다. (고구려|백제|신라) 를 찾으면 고구려 또는 백제, 신라를 찾게 된다.</fragment>
—- https://goo.gl/EUwNxG?.png bg-zoom slide slow —→
>
## 이스케이프 문자
<fragment highlight-current-red>\w
</fragment>
<fragment highlight> : 영문자와 숫자, 언더스코어(_) dgkxYA</fragment>
<fragment highlight-current-red>\W
</fragment>
<fragment highlight> : 영문자와 숫자, 언더스코어(_)가 아닌 문자 ZMfpWx</fragment>
<fragment highlight-current-red>\d
</fragment>
<fragment highlight> : 10진수로 된 숫자 1Sj781</fragment>
<fragment highlight-current-red>\D
</fragment>
<fragment highlight> : 10진수 숫자 가 아닌 모든 문자(공백 포함) o3X3Fe</fragment>
<fragment highlight-current-red>\s
</fragment>
<fragment highlight> : 탭, 줄바꿈 등 지정된 공백문자[\t\n\r\f\v] RV8cac</fragment>
<fragment highlight-current-red>\S
</fragment>
<fragment highlight> : 위 공백문자가 아닌 모든 글자 N7SHTb</fragment>
<fragment highlight-current-red>\t
</fragment>
<fragment highlight> : 일반적으로 탭(TAB) 키를 입력했을 때 나오는 일정 간격을 유지하는 공백 YcDejH</fragment>
—- https://goo.gl/fQQXU1?.png bg-zoom slide slow —→
글자 대표문자 \w
<fragment-block fade-up>
- snippet.python
# 따옴표(')로 둘러쌓인 부분에 원하는 정규표현식을 적습니다. regex = r'\w' search_target = '''Luke Skywarker 02-123-4567 [email protected] 다스베이더 070-9999-9999 [email protected] princess leia 010 2454 3457 [email protected]''' # 정규표현식과 일치하는 부분을 모두 찾아주는 파이썬 코드입니다. import re result = re.findall(regex, search_target) print("\n".join(result))
</fragment-block>
<fragment-block fade-up>
결과
- snippet.python
L u k e S k y w a r k e r 0 2 1 2 .. 이하 생략 ..
</fragment-block>
—- https://goo.gl/uo3Vzo?.png bg-zoom slide slow —→
숫자 대표문자 \d
<fragment-block fade-up>
- snippet.python
# 따옴표(')로 둘러쌓인 부분에 원하는 정규표현식을 적습니다. regex = r'\d' # 주소록입니다. 이후 강의에서 모두 이 search_target을 사용합니다. search_target = '''Luke Skywarker 02-123-4567 [email protected] 다스베이더 070-9999-9999 [email protected] princess leia 010 2454 3457 [email protected]''' # 정규표현식과 일치하는 부분을 모두 찾아주는 파이썬 코드입니다. import re result = re.findall(regex, search_target) print("\n".join(result))
</fragment-block>
<fragment-block fade-up>
결과
- snippet.python
0 2 1 2 3 4 5 6 7 0 7 0 9 9 9 9 9 .. 이하 생략 ..
</fragment-block>
—- https://goo.gl/WVzZkX?.png bg-zoom slide slow —→
>
## 특수 문자
<fragment highlight-current-red>?</fragment>
<fragment highlight> : 문자가 없거나 하나인 경우 SotRqm</fragment>
<fragment highlight-current-red>*</fragment>
<fragment highlight> : 문자가 없거나 하나 이상 존재하는 경우 SotRqm</fragment>
<fragment highlight-current-red>+</fragment>
<fragment highlight> : 문자가 하나 이상 존재하는 경우 SotRqm</fragment>
—- https://goo.gl/eccY3q?.png bg-zoom slide slow —→