2012-06-28 3 views
0

WWW :: Mechanize에서 사용되는 url_regex에 대한 올바른 구문이 무엇인지 잘 모르겠습니다.Regex in WWW :: Mechanize in Perl

내가 http로 시작하는 웹 페이지에서 모든 링크를 수집하고 있습니다 : //를하고 그들이 다음과 같은 형식의 위치 : 그래서

http://google.com/dir/ 
http://google.com/dir/dir2/ 

,

http://google.com 

아니라, I 다음을 사용하십시오.

@links=$mech->find_all_links(url_regex=>qr/^http:\/\/.*?\//) 

그리고 여전히 하위 경로가있는 URL을 캡처합니다.

정규식을 regexpal.com에서 테스트했는데 정상적으로 작동합니다. 그러나 어떤 이유로, url_regex는 다른 구문을 기대합니다.

감사합니다.

답변

1

당신은 사용해야

@links=$mech->find_all_links(url_regex=>qr/^http:\/\/[^\/]*\/?$/) 

읽는 :

문자열 http://^[^\/]*이 다음에 슬래시보다 문자 등의 조합 (심지어 없음/빈) 다음에 시작해야합니다 선택적 슬래시 (끝 부분)은 $입니다.

+0

감사합니다. 그것은 작동합니다. 정규식에 대해 좀 더 설명해 주시겠습니까? 점은 슬래시 문자와도 일치하므로 내 정규식은 작동하지 않으므로 문자 클래스에서이를 무시해야합니다. 그게 그 이유야? –

+0

@NeonFlash - 답변이 덧글로 업데이트되었습니다. –