티스토리 뷰

replace

 

python 에서 정규표현식(regular expression)의 sub 이용하기

파이썬에서 regular expression 으로 matching 되는 string 을 replace 할 수 있다.

 

아래 예시를 보면서 설명하자.

        patternNodeNo = re.compile(
            ur"(href=['\"])(?P<url>.*?)(['\"])",
            re.IGNORECASE|re.MULTILINE|re.DOTALL
        )
        matched = patternNodeNo.sub("\g<1>" + frontUrl + "\g<url>" + "\g<3>", content2)
        if matched is not None:
            self.converted = matched

pattern 을 만드는 것은 특이할 사항이 없다.

sub() 에서 봐야 할 것은 "\g<1>" 이다. \g 은 group 을 뜻한다. \g<1> 은 group(1) 과 같은 뜻을 의미한다. 그러므로 위의 코드에서는 (href=['\"]) 을 가리키게 된다.

"\g<url>" 은 (?P<url>.*?) 을 가리킨다. <>(꺽쇠) 안에 있는 것이 이름을 뜻한다.

 

patternNodeNo.sub("\g<1>" + frontUrl + "\g<url>" + "\g<3>", content2)

은 content2 에서 patternNodeNo 의 정규표현식(regular expression) 과 같은 녀석들을 찾아서 "\g<1>" + frontUrl + "\g<url>" + "\g<3>"로 대체(replace, substitue) 해주게 된다.

 

 

References

  1. http://docs.python.org/2/library/re.html >> re.sub()
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/05   »
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
글 보관함