1.正則表達(dá)式相關(guān)說明
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、紅橋網(wǎng)站維護(hù)、網(wǎng)站推廣。() 是為了提取匹配的字符串。表達(dá)式中有幾個(gè)()就有幾個(gè)相應(yīng)的匹配字符串。
(\s*)表示連續(xù)空格的字符串。
(\d*)表示連續(xù)的數(shù)字,與[0-9]+類似
[]是定義匹配的字符范圍。比如 [a-zA-Z0-9] 表示相應(yīng)位置的字符要匹配英文字符和數(shù)字。[\s*]表示空格或者*號(hào)。
{}一般用來表示匹配的長度,比如 \s{3} 表示匹配三個(gè)空格,\s[1,3]表示匹配一到三個(gè)空格。
(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配數(shù)字(注意后面有 *,可以為空)[0-9]+ 匹配數(shù)字(注意后面有 +,不可以為空){1-9} 寫法錯(cuò)誤。
[0-9]{0,9} 表示長度為 0 到 9 的數(shù)字字符串
關(guān)于[]* 與[]+的示例:
[]*可以返回控制,即可以找不到值,但是[0-9]+不可以為空,如果為空返回錯(cuò)誤
>>> c='GET /diviner?pin=1123066825_m&p='
>>> r=re.search('p=([0-9]+)',c)
>>> print r.group(1)
Traceback (most recent call last):
File "
AttributeError: 'NoneType' object has no attribute 'group'
>>> print r
None
>>> r=re.search('p=([0-9]*)',c)
>>> print r.group(1)
----此處返回為空
2.re mathc search說明
match()函數(shù)只檢測RE是不是在string的開始位置匹配,
search()會(huì)掃描整個(gè)string查找匹配;
>>> a='123aaabcabcabc'
>>> import re
>>> re.search('abc',a)
<_sre.SRE_Match object at 0x7fd7534184a8>
>>> re.mathc('abc',a)
Traceback (most recent call last):
File "
AttributeError: 'module' object has no attribute 'mathc'
>>> re.match('abc',a)
>>> b=re.match('abc',a)
>>> print b
None
>>> b=re.match('1',a)
>>> pint b
File "
pint b
^
SyntaxError: invalid syntax
>>> print b
<_sre.SRE_Match object at 0x7fd7534188b8>
()在對(duì)于group groups的作用---主要起到分組的作用
>>> c='GET /diviner?pin=1123066825_m&p=61234'
>>> r=re.search('p=((\d*))',c)
>>> print c.group(0)
Traceback (most recent call last):
File "
AttributeError: 'str' object has no attribute 'group'
>>> print r.group(0)
p=61234
>>> r=re.search('p=((\d*))',c)
>>> r=re.search('p=([0-9]*)',c)
>>> r=re.search('p=[0-9]*',c)
>>> print r.group
>>> print r.group(0)
p=61234
>>> print r.group(1)---無括號(hào)無分組
Traceback (most recent call last):
File "
IndexError: no such group
>>> r=re.search('p=([0-9]*)',c)
>>> print r.group(1)
61234