我有一個字串:
s = r'"url" : "a", "meta": "b", "url" : "c"'
我要的是捕捉串url: ...起來的,,所以預期的輸出是一個串列:
[r'"url" : "a"', r'"url" : "b"']
我在用:
re.findall(r'("url"):(.*),', s)
但它所做的只是回傳整個字串。有什么我做錯了嗎?
uj5u.com熱心網友回復:
由于貪婪搜索,您的最后一個“,”被匹配, (.*?) 是非貪婪的。最后一個逗號也是可選的,因此如果不存在則需要忽略
import re
s = r'"url":"a","meta":"b","url":"c"'
print(re.findall(r'("url"):"(.*?)",?', s))
uj5u.com熱心網友回復:
您必須轉義 the,以避免在組內包含逗號。嘗試這個:
re.findall(r'(("url" :[^,]*),*)', s)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/361858.html
下一篇:如何使用正則運算式提取部分字串
