我有一個URLS列表,我試圖從中獲取只是身份證號碼。我正在嘗試使用URLParse和正則表達式的組合來解決這個問題。這裏是我的功能看起來像:在Python中匹配正則表達式,其中包含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)
不匹配的一些網址,如下面的例子說明。
#1
id=10001332443221607 #No match
#2
id=6383662222426&fref=ts #matched
我試圖通過改寫我的正則表達式作爲id=(.*).+?(?=&fref=ts)
這再次匹配#2,但在上述實施例不#1採取建議按照在this回答所提供的建議。
我不知道我在這裏錯過了什麼。任何建議/提示將不勝感激。
有跡象表明,使用Python的風味幾個網上正則表達式測試儀,它們是手工製作的圖案非常方便。 https://regex101.com/是一個。你有沒有試過''id =(\ d *)''爲模式? – wwii