正規表示式的元字元有. ^ $ * ? 對於前乙個字元重複次數在為m到n次,其中, = *, = , = ?
對於前乙個字元重複m次
\d 匹配任何十進位制數;它相當於類 [0-9]。
\d 匹配任何非數字字元;它相當於類 [^0-9]。
\s 匹配任何空白字元;它相當於類 [ fv]。
\s 匹配任何非空白字元;它相當於類 [^ fv]。
\w 匹配任何字母數字字元;它相當於類 [a-za-z0-9_]。
\w 匹配任何非字母數字字元;它相當於類 [^a-za-z0-9_]。
1.元字元([ ]),它用來指定乙個character class。所謂character classes就是你想要匹配的字元(character)的集合.字元(character)可以單個的列出,也可以通過」-「來分隔兩個字元來表示一 個範圍。例如,[abc]匹配a,b或者c當中任意乙個字元,[abc]也可以用字元區間來表示—[a-c].如果想要匹配單個大寫字母,你可以用 [a-z]。
2.元字元[^]. 你可以用補集來匹配不在區間範圍內的字元。其做法是把」^」作為類別的首個字元;其它地方的」^」只會簡單匹配 「^」字元本身。例如,[^5] 將匹配除 「5」 之外的任意字元。同時,在[ ]外,元字元^表示匹配字串的開始,如」^ab+」表示以ab開頭的字串。
>>> m=re.search("ab+","asdfabbbbcd")
>>>
print m.group()
abbbb
這裡的+代表字串ab後面有多少b都可以被列印出來。
>>> m=re.search("ab","asdfabbbbcd"
>>>
print m.group()
ab
如果沒有+,ab只列印一次。search一般從字元的任意位置開始匹配。
3.」^」在不同位置所代表的意義。
>>> re.search("[^abc]","abcd") #"^"在首字元表示取反,即abc之 外的任意字元。
<_sre.sre_match object at>
>>> m=re.search("[^abc]","abcd")
>>> m.group()
'd'>>> m=re.search("[abc^]","^") #如果"^"在[ ]中不是首字元,那麼那就是乙個普通字元
>>> m.group()
'^'
4.元字元($)匹配字串的結尾或者字串結尾的換行之前。
>>> re.findall("foo.$","foo1\nfoo2\n")
['foo2']
>>> re.findall("foo$","foo1\nfoo2\n")
>>> re.findall("foo$","foo1\nfoo\n")
['foo']
>>> re.findall("foo.$","foo1\nfoo23\n")
「.」 表示可以匹配任意乙個字元,且只能匹配乙個字元,$從字串後面開始匹配,所以得到上述結果。
search和findall的區別:
search找到就返回,不會找到所有的,找不到就返回none;
findall會找到所有的。
>>> m=re.search("abcd", '1abcd2abcd')
>>> m.group() #找到即返回乙個match object,然後根據該物件的方法,查詢匹配到的結果。
'abcd'
>>> re.findall("abcd","1abcd2abcd")
['abcd', 'abcd']
#!/usr/bin/env python
#-*- coding: gbk -*-
__author__ = 'diao'
import re
import urllib2
class
todaymovie
(object):
'''獲取影院當日影視'''
def__init__
(self):
self.url =''
self.timeout = 5
self.filename = './todaymovie.txt'
'''定義內部變數'''
第一次寫 ,質量不好,這裡的抓取電影,有兩種格式,所以抓的時候分兩次抓的,我本來想能不能利用迴圈可以執行一次程式就把所有都抓出來,但是水平有限,不會用迴圈,所以就將程式執行兩次,寫入檔案時,將檔案寫入方式改為『a』,python程式順序執行,我把movielist1 = re.findall(『title=.*』,response.read())
放前面,就執行這個,另乙個就不執行了。還有就是後面抓的電影名稱重複兩次,我不知道怎麼去除一次。第一次寫,總算爬出來了,後面再。繼續學習
re 正規表示式模組
import re 預定義字符集 d 數字 0 9 d 非數字 d s 空白字元 空格 t r n f v s 非空白字元 s w 單詞字元 a za z0 9 w 非單詞字元 w 匹配數量 匹配除換行符以外的任何單個字元 匹配前乙個字元0或無限次 盡可能多的匹配 盡可能少的進行匹配前邊的正規表示式...
正規表示式 re模組
re是python中的正規表示式模組,正則也是每個人程式設計之路上必備的基礎技能。這部落格希望即便從來沒接觸過的人看了也會使用正規表示式字元 含義.匹配除了換行符外的任何字元。可以用re.dotall來設定匹配任何字元,包括換行符 丨a丨b 表示正規表示式匹配a或者b 匹配輸入字串開始的位置,如果設...
正規表示式re模組
正規表示式re模組 編譯正規表示式模式,返回乙個物件的模式。可以把那些常用的正規表示式編譯成正規表示式物件,這樣可以提高一點效率。1 compile 格式 re.compile pattern,flags 0 pattern 編譯時用的表示式字串。flags 編譯標誌位,用於修改正規表示式的匹配方式...