Ⅰ python 正則
p = re.compile(r'<th class="subject new">(.*?)</th>',re.S)
不要繼續問為什麼, 去查python手冊.
還有一個小提示,不建議用str作變數名, 因為str是python內建的一個類
Ⅱ python中的正則表達式中的 "|"
Python中re.findall()函數是要求正則表達式在捕獲第0組數據時,要在正則表達式上加小括弧才能捕獲.
也就是說如果你要獲取整個正則表達式匹配的數據(你這里是電子郵箱地址),需要在正則表達式外面加小括弧,
然後取第0捕獲組的數據(你這里是[x[0] for x in zhengze]),
因為findall函數把每一個匹配的多個捕獲組(就是你正則表達式中的小括弧中)的數據放到一個元組里,所以要用for循環把第0捕獲組的數據取出來.
具體程序改進如下
>>>zhengze=re.findall("([A-Za-z0-9]+@(163|qq|gmail).com)",txt)
>>>[x[0]forxinzhengze]
結果就是你要的郵箱列表了.
Ⅲ python 正則表達式
正則語法:
top|123
效果:
Ⅳ python正則表達式
group和groups是兩個不同的函數。
一般,m.group(N) 返回第N組括弧匹配的字元。
而m.group() == m.group(0) == 所有匹配的字元,與括弧無關,這個是API規定的。
m.groups() 返回所有括弧匹配的字元,以tuple格式。
m.groups() == (m.group(0), m.group(1), ...)
對你給的例子:
m = re.match("([abc])+", "abc")
你的+號在括弧外面。括弧最多匹配到一個字元,要麼是a, 要麼是c,這個python引擎匹配的是末尾的c。
而m.group() == m.group(0) 這個返回的是整個匹配的字元串"abc".
關於捕獲型括弧在正則表達式里的用法,參見相關文檔。
參見http://..com/link?url=CltRBzI_-_jFl88a
Ⅳ python正則匹配
不需要正則,直接用in就可以了
withopen('aa.txt')asf:
s=f.read()
ifall([iinsforiin'abchij']):
print(True)
if'bc12'ins:
print(True)
Ⅵ python正則
>>> import re
>>>
>>> patt = re.compile(r"H3K(?P<k>[^\.]*)\..*")
>>>
>>> s = "H3K3490atmlth2.pted.grz.tedcrrhr1.cso"
>>> patt.match(s).groupdict().get("k")
'3490atmlth2'
>>>
Ⅶ Python 正則
沒人回答我來回答吧!
能用不一定有多優美!
匹配代碼:
.*?javascript:parent.cs\('(.*?)'\).*?class=.private.*?javascript:parent.cs\('(.*?)'\).*?<font color="black">(.*?)</font>
提取代碼
list=(\1,\2,\3)
不支持就\n就$n
list=($1,$2,$3)
平時不用思考,就這么寫出的代碼!!!!
Ⅷ python 正則表達式 (.*)
groups()返回所有捕獲組構成的tuple。你的正則表達式中有唯一一個捕獲組(.*?),而?在此處表示非貪婪匹配,即在整個正則表達式成立的前提下匹配盡可能少的字元,此處最少的情況是什麼也不匹配,整個正則表達式匹配Python中的Py,而捕獲組自然為空字元串。
Ⅸ python正則匹配
#!/usr/bin/python
#-*-coding:utf-8-*-
importre
s='<liclass="x-left-li">大小: 1018KB <span>|</span></li> <liclass="x-left-lili-cs">下載: 321次 <span>|</span></li> <liclass="x-left-li">格式: .png <span>|</span></li>'
p=re.compile(r'[sS]*大小[:: f x20]+([da-zA-Z]+)[sS]*下載[:: f x20]+(d+)[sS]*格式[:: f x20]+([.a-zA-Zd]+)[sS]*')
prints+" ";
printp.sub(r'1',s)
printp.sub(r'2',s)
printp.sub(r'3',s)