私はID番号だけを取得しようとしているURLのリストを持っています。私はURLParseと正規表現の組み合わせを使ってこれを解決しようとしています。ここに私の関数がどのように見えるかです:URLを含むPythonの正規表現に一致する
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/は1つです。パターンに対して '' id =(\ d *) ''を試しましたか? – wwii