程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python正則表達式 ?和?:

編輯:Python

1.re’?’
非貪婪方式,僅僅匹配0個或1個由前面的正則表達式定義的片段

zqgsb = "are you_ok_today_you_ok_today"
print(re.search(r"you(.*?)today", zqgsb).groups())
print(re.search(r"you(.*)today", zqgsb).groups())

如果不加?,則會匹配盡可能多的字符串,加上?則只會匹配0或1個
輸出為:

('_ok_',)
('_ok_today_you_ok_',)

2.()
創建一個“捕獲”組,對正則表達式分組並記住匹配的文本

print(re.search(r"you(.*?)today(.*)", zqgsb).groups())

輸出為捕獲的兩個括號匹配的內容:

('_ok_', '_you_ok_today')

3.?:
括號在正則表達式中創建一個“捕獲”組,通過在開頭添加“?:”來關閉捕獲

print(re.search(r"you(?:.*?)today(.*)", zqgsb).groups())
print(re.search(r"you(.*?)today(?:.*)", zqgsb).groups())

輸出為:

('_you_ok_today',)
('_ok_',)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved