2016-07-10 2 views
-1

저는 파이썬을 처음 사용합니다. gitHub의 저장소를 살펴보고 웹 페이지에서 모든 URL을 추출하는 다음 코드 줄을 보았습니다. 정규 표현식과 그룹 캡처를 이해하지만 작은 따옴표 안에 큰 따옴표가 들어있는 이유를 모르겠습니다.다시 표현식 (파이썬) 안에 작은 따옴표로 묶인 큰 따옴표

links = re.findall('"((http|ftp)s?://.*?)"', html) 

즉, 다음 코드와 어떻게 다른가요?

links = re.findall('((http|ftp)s?://.*?)', html) 

나는 실험을 시도하고 첫 번째 것은 URL 구문과 정확하게 일치하지만 두 번째 것은 올바르게 표시되지 않는 것을 보았습니다. 그러나 나는 왜 그런지 이해하지 못한다.

도움을 주시면 감사하겠습니다.

감사합니다.

+0

http://pythex.org/에서 사용해보십시오. 또는 테스트 문자열을 만들어 통역사에서 시험해보십시오. – wwii

+0

패턴이 무엇인지보기위한 가장 좋은 도구는 [regex101.com] (http://regex101.com)입니다. –

+0

내 질문의 사본을 찾을 수 없습니다. 정확한 링크를 가르쳐 주시겠습니까? @ WiktorStribiżew – nilanjanaLodh

답변

1

큰 따옴표는 정규식의 일부입니다. 패턴이 실제로 따옴표로 묶여있는 경우 패턴 만 일치하는지 확인합니다. foo bar http://whatever.com은 일치하지 않지만 <a href="http://whatever.com">이됩니다.

작은 따옴표는 HTML에서도 유효하지만 정규식과 일치하지 않기 때문에 이것은 매우 취약합니다.

+0

고마워. 이 내 질문에 대답 :) – nilanjanaLodh

관련 문제