정규표현식

이번엔 정규표현식 중 선택에 대해 알아본다.


11. 몇 개 중에 고르기

알파벳 중 소문자 모음만 고르고 싶을 때는?
[a,e,i,o,u]와 같이 말이다.
그럴땐, [aeiou]만 입력해본다.
대괄호 안에 글자를 넣으면 해당 글자를 모두 선택한다.

# 정규표현식
regex = r'[aeiou]'

# 주소록
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'''

# 파이썬 코드
import re
result = re.findall(regex, search_target)
print("\n".join(result))

# 출력
u
e
a
.
.
.
a
i
o

12. 범위에서 고르기 [1]

이번엔 소문자 알파벳만 골라본다.
[abcdefghijklmnopqrlstuvwxyz]를 사용해도 되겠지만,
[a-z]를 사용한다.

# 정규표현식
regex = r'[a-z]'

# 주소록
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'''

# 출력은 생략한다.
u k ... o m 

13. 범위에서 고르기 [2]

연속된 영어 소문자를 찾아본다.
[a-z]+를 써보자!

# 정규표현식
regex = r'[a-z]+'

# 주소록
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'''

# 출력
uke
kywarker
luke
daum
net
...
leia
gmail
com

14. 한글 고르기

한글 단어를 찾아본다.
한글의 첫 번째 글자는 이고, 마지막은 이다.

# 정규표현식
regex = r'[가-힣]+'

# 주소록
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'''

# 출력
다스베이더

단, 이 방식은 ㄱㄷㄴㅏㅑㅓㅕ같은 낱글자를 찾을 수 없다.


15. 기타 대표문자

숫자나 글자 외에도 다양한 대표 문자가 있다.

  • \s : 공백 문자(스페이스, 탭, 뉴라인)
  • \S : 공백 문자를 제외한 문자
  • \D : 숫자를 제외한 문자
  • \W : 글자 대표 문자를 제외한 문자(특수문자, 공백 등)

16. JavaScript 정규표현식

// 주소록
var searchTarget = "Luke Skywarker 02-123-4567 luke@daum.net\
다스베이더 070-9999-9999 darth_vader@gmail.com\
princess leia 010 2454 3457 leia@gmail.com";

// 정규표현식
var regex = /\d/g;
console.log(searchTarget.match(regex));

// 출력
    [ '0','2','1','2','3','4', ... ,'4','3','4','5','7' ]