나는 ID 번호를 가져 오려고하는 URL 목록이 있습니다. URLParse와 정규 표현식의 조합을 사용하여이 문제를 해결하려고합니다.파이썬에서 URL이 포함 된 정규 표현식이 일치합니다.
def url_cleanup(url):
parsed_url = urlparse(url)
if parsed_url.query=="fref=ts":
return 'https://www.facebook.com/'+re.sub('/', '', parsed_url.path)
else:
qry = parsed_url.query
result = re.search('id=(.*)&fref=ts',qry)
return 'https://www.facebook.com/'+result.group(1)
는 그러나, 나는 정규 표현식 result = re.search('id=(.*)&fref=ts',qry)
은 아래의 예에 설명 된대로 URL 중 일부 일치하지 느낌 : 여기처럼 내 함수가 모습입니다.
#1
id=10001332443221607 #No match
#2
id=6383662222426&fref=ts #matched
는 다시 # 2하지만 위의 예에서하지 # 1 일치
id=(.*).+?(?=&fref=ts)
로 내 정규 표현식의 문구를 수정하여
this 대답에서 제공되는 제안에 따라 제안을 찍어 보았습니다.
여기에 무엇이 누락되어 있는지 잘 모르겠습니다. 모든 제안/힌트를 주시면 감사하겠습니다.
를 참조하십시오, 그들은 패턴 공예에 매우 편리합니다. https://regex101.com/은 하나입니다. 패턴에 대해''id = (\ d *) ''를 시도 했습니까? – wwii