自己遇到的問題,小記一下!
# -*- coding: utf-8 -*-
__author__ = 'johnny'
import re
line = "baaaaacfbsbdada"
reg_str = ".*(b.*b).*"
match_str = re.match(reg_str, line)
if match_str:
print match_str.group(1)
----------------------------------------
line = "baaaaacfbsdada"
reg_str = ".*(b.*b).*"
match_str = re.match(reg_str, line)
if match_str:
print match_str.group(1)
----------------------------------------
line = ""
reg_str = ".*"
match_str = re.match(reg_str, line)
if match_str:
print match_str.group() is
''print match_str.group() is
true
print match_str.group() is
false
以上**輸出為:
>>> bsb
>>> baaaaacfb
>>>
true
>>>
false
>>>
false
第一種情況是,在滿足分組條件下,貪婪,所以『bsb』左側全部被貪婪。
第二種情況是,在滿足分組條件下,無法再貪婪,所以左側開始就直接匹配分組了。
第三種情況是,』.*』可以匹配空,所以找到了。但是空既不是true也不是false。
非貪婪就比較好理解了。
python非貪婪匹配 python正則非貪婪模式
那如果只想匹配1次怎麼辦呢,這就是正則中非貪婪模式的概念了 原理就是利用?與其他匹配次數規則進行組合 單個匹配規則 表示匹配0 n次 表示匹配1 n次 表示匹配0 1次 三者可組合成非貪婪模式匹配次數解析 簡而言之 它們必須結合左右的子串進行匹配,左邊正則必須非空,右邊正則可以為空,中心思想就是在匹...
python正規表示式 貪婪 非貪婪
主要就是.與.的區別,是貪婪的,是非貪婪的例子如下 import re line cats are smarter than dogs matchobj1 re.match r are line matchobj2 re.match r are line matchobj1.group 1 matc...
正則非貪婪匹配
string str 註冊商 xiamen ename network technology corporation limited dba ename corp,網域名稱伺服器 whois.ename.com,相關 dns 伺服器 ns1.ename.net,dns 伺服器 ns2.ename.n...