티스토리 뷰

Python

Regular Expression 기초

techbard 2015. 7. 29. 16:23
  • Very powerful method of matching patterns in text
  • Implemented in Python with the "re" module

# 문자열 search - 매칭

import re

ws = ['waterworld', 'watermelon', 'wakeboard']


for w in ws:

    if re.search('waterm', w):

        print(w)


결과)

watermelon


# 문자열 search - or 매칭

import re

ws = ['waterworld', 'watermelon', 'wakeboard']


for w in ws:

    if re.search('water|wake', w):

        print(w)


결과)

waterworld

watermelon

wakeboard


# 문자열 search - exact 매칭

import re

ws = ['waterworld', 'watermelon', 'wakeboard']


for w in ws:

    match = re.search('water|wake', w)

    if match:

        print(match.group())


결과)

water

water

wake


# 문자열 replace - sub() 메쏘드 사용

import re

ws = ['waterworld', 'watermelon', 'wakeboard']


for w in ws:

    print(re.sub('wa', '##', w))


결과)

##terworld

##termelon

##keboard


# 문자열 replace - match 객체의 요소를 스트링 교체

import re

ws = ['waterworld', 'watermelon', 'wakeboard']


for w in ws:

    match = re.search('wa', w)

    if match:

        print(w.replace(match.group(), '##'))


결과)

##terworld

##termelon

##keboard


# 매번 re 객체를 생성하지 않고 한 번만 생성해 놓고 계속 사용하는 방법 (대소문자 무시 옵션)

import re

ws = ['waterworld', 'watermelon', 'WAkeboard']


pattern = re.compile('wa', re.IGNORECASE)

for w in ws:

    if re.search(pattern, w):

        print(w)


결과)

waterworld

watermelon

WAkeboard


# re.compile() 메쏘드를 이용한 replace

import re

ws = ['waterworld', 'watermelon', 'WAkeboard']


pattern = re.compile('wa', re.IGNORECASE)

for w in ws:

    if re.search(pattern, w):

        print(re.sub(pattern, '##', w))


결과)

##terworld

##termelon

##keboard


댓글
댓글쓰기 폼
공지사항
Total
410,766
Today
35
Yesterday
44
«   2019/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
글 보관함