2008-09-16 4 views
6

자습서 파이썬에서 Regex를 사용하는 방법에 대해 파이썬에서 re 모듈을 사용하는 방법을 설명합니다. 그래서 Regex를 알고 있으므로 올바른 식을 작성하고 테스트했습니다. regex 선택 애플 리케이션을 테스트하고 그것이 작동 보장. 파이썬에 놓이면 실패했습니다.Python과 "re"

많은 머리를 긁어 낸 후에 문제가 발견되면 문자열의 시작 부분에 패턴이 자동으로 나타납니다. 나는 수정을 발견하지만 변경하는 방법을 알고 싶습니다 :

regex = ".*(a_regex_of_pure_awesomeness)" 

regex = "a_regex_of_pure_awesomeness" 

좋아

으로, 그것은 표준 URL 정규식입니다하지만 난에 원한에 대한 잠재적 인 혼동을 피하기 위해 원 가능하다면 우스운 척해라.

답변

19

파이썬에는 "match"와 "search"가 있습니다. match는 문자열의 시작 부분에서만 패턴을 찾고, search는 문자열 내의 모든 위치에서 시작하는 패턴을 찾습니다. 당신은 아마 다른 방법으로 난처하게하고있다

1

re.match() 또는 re.search() 메소드를 사용하고 있습니까? 제 생각에 re.match()는 표현식의 시작 부분에 "^"가 있다고 가정하고 re.search()는 펄 정규 표현식과 비슷하게 동작하며 시작 부분 만 일치시킵니다 표현의 시작 부분에 "^"를 포함하면 텍스트의 희망이 도움이됩니다.

3
>>> import re 
>>> pattern = re.compile("url") 
>>> string = " url" 
>>> pattern.match(string) 
>>> pattern.search(string) 
<_sre.SRE_Match object at 0xb7f7a6e8> 
4
from BeautifulSoup import BeautifulSoup 

soup = BeautifulSoup(your_html) 
for a in soup.findAll('a', href=True): 
    # do something with `a` w/ href attribute 
    print a['href']