看具體示例
importredef
expand_abbr(sen, abbr):
lenabbr =len(abbr)
ma = ''
for i in
range(0, lenabbr):
ma += abbr[i] + "
[a-z]+
" + '
'ma:
', ma
ma = ma.strip('')
p =re.search(ma, sen)
ifp:
return
p.group()
else
:
return
''print expand_abbr("
welcome to algriculture bank china
", '
abc')
分析
縮寫詞fema
分解為f*** e*** m*** a***
規律大寫字母 + 小寫(大於等於1個)+ 空格
參考**
問題以上分析對於示例前三個是可以的,但是後三個出現問題了,大寫字母開頭的擴充詞裡夾雜這小寫字母
解決
縮寫詞fda
分解為f*** (**)? e*** (**)? m*** (**)? a***
其中(**)?表示小寫字母組合出現一次或不出現
規律大寫字母 + 小寫(大於等於1個)+ 空格 + [小寫+空格](0次或1次)
參考**
importredef
expand_abbr(sen, abbr):
lenabbr =len(abbr)
ma = ''
for i in range(0, lenabbr-1):
ma += abbr[i] + "
[a-z]+
" + '
' + '
([a-z]+ )?
'ma += abbr[lenabbr-1] + "
[a-z]+
'ma:
', ma
ma = ma.strip('')
p =re.search(ma, sen)
ifp:
return
p.group()
else
:
return
''print expand_abbr("
welcome to algriculture bank of china
", '
abc')
語法
? 匹配前邊一次或0次
()作為乙個分組,後邊可以加量詞,表示匹配的次數
python 正規表示式應用
usr bin env python coding utf 8 乙個小爬蟲 其中用的規則是 src jpg pic ext 可是這樣會出現問題 如 網頁源 中會有這樣的串 情況一 引用非jpg的標籤後連著乙個引用jpg的標籤 匹配出來的url pic ext png width 30 height ...
python 正規表示式應用
同樣的概念也適用於正規表示式 在模式匹配發生之前,正規表示式模式必須編譯 成正規表示式物件。由於正規表示式在執行過程中將進行多次比較操作,因此強烈建議使 用預編譯。而且,既然正規表示式的編譯是必需的,那麼使用預編譯來提公升執行效能無疑 是明智之舉。re.compile 能夠提供此功能。一 使用 co...
正規表示式應用
d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮點數 d 非正浮點數 負浮點數 0 0 9 0 ...