[英]Regex - Python matching between string and first occurence
無論我讀了多少文檔,我都很難掌握正則表達式。 我正在嘗試匹配一個字符串和第一次出現之間的所有內容&
這就是我所擁有的
link = "group.do?sys_id=69adb887157e450051e85118b6ff533c&&"
rex = re.compile("group\.do\?sys_id=(.?)&")
sysid = rex.search(link).groups()[0]
我正在使用https://regex101.com/#python來幫助我驗證我的正則表達式,我可以得到rex = re.compile("user_group.do?sys_id=(.*)&")
來工作但是.*
是貪婪匹配到最后與和即時通訊尋求比賽進行到第&
我想.?
匹配0到1次
您可以簡單地將正則表達式輸出到&
而不是最終&
等等:
import re
link = "user_group.do?sys_id=69adb887157e450051e85118b6ff533c&&"
rex = re.compile("user_group\.do\?sys_id=(.*)&&")
sysid = rex.search(link).groups()[0]
print(sysid)
.*
很貪心但是
.*?
不應該在正則表達式中。
.?
只會在0-1次尋找任何角色
.*?
將查找最早的匹配事件。 我希望能夠解釋它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.