正則 表達式 快速 入門 欄目 正則表達式 简体版
原文   原文鏈接

前言html

python文檔:https://docs.python.org/zh-cn/3/library/re.html?highlight=re#module-repython

findall:匹配全部符合條件的內容。正則表達式

search:匹配第一個符合條件的內容。算法

sub:替換符合條件的內容函數

 

1.".":匹配任意字符,換行符"\n"除外spa

import re

a='yasdfhs'

c=re.findall('y.',a)
print(c)    #輸出['ya']

e=re.findall('y..',a)
print(e)   #['yas']

b=re.findall('y...',a)
print(b)   #輸出['yasd']

若是被匹配的字符串中有換行符"\n"code

import re

b="hello\nworld"
a=re.findall("o.",b)
print(a)    #輸出['or']

w="helloworld"
d=re.findall("o.",w)
print(d)    #輸出['ow', 'or']

 

2.「*」:匹配前一個字符(0次或無數次)htm

   "?":匹配前一個字符(1次或0次)blog

兩者的區別就在於下邊的例子:文檔

import re

a='hyyssyy'
c=re.findall('s*',a) print(c) #輸出 ['', '', '', 'ss', '', '', ''] w=re.findall("s?",a) print(w) #輸出 ['', '', '', 's', 's', '', '', ''] # 若是在字符和字符串之間加空格 c=re.findall('s *',a) print(c) #輸出 ['s', 's'] w=re.findall("s ?",a) print(w) #輸出['s', 's'] #很顯然,"*"和"?"都不會匹配空格表明的內容

 

3.".*":貪心算法(儘量匹配多的符合條件的內容)

 「.*?」:非貪心算法(儘量匹配較少的符合條件的內容)

 "()":把括號內的數據做爲結果輸出

兩者的區別就在於下邊的例子:

import re 

a_cod="xxxixxxxxxlikexxxxxxpythonxxx"

g=re.findall('xxx.*xxx',a_cod)
print(g)    #輸出['xxxixxxxxxlikexxxxxxpythonxxx']

s=re.findall('xxx(.*)xxx',a_cod)
print(s)    #輸出['ixxxxxxlikexxxxxxpython']

d=re.findall('xxx.*?xxx',a_cod)
print(d)    #輸出['xxxixxx', 'xxxlikexxx', 'xxxpythonxxx']

h=re.findall('xxx(.*?)xxx',a_cod)
print(h)    #輸出['i', 'like', 'python']

#加入小括號"()"的做用一目瞭然,目的是爲了使其只顯示符合條件的目標的內容,增長美觀度。

 

4.「S」:使條件語句可以匹配空格,換行等等

import re

a_cod='''xhelloxx
pythonxx!x'''

d=re.findall('x(.*?)x',a_cod)
print(d)    #輸出['hello', '']

a=re.findall('x(.*?)x',a_cod,re.S)
print(a)    #輸出['hello', '\npython', '!']

 

5.對比'findall'和'search'函數

import re

a_cod='''xhelloxx
pythonxx!x'''

a=re.search('x(.*?)x',a_cod,re.S)
print(a)    #輸出<re.Match object; span=(0, 7), match='xhellox'>

#"search"中只匹配了「hello」

q=re.findall('x(.*?)x',a_cod,re.S)
print(q)    #輸出['hello', '\npython', '!']

 

6.「sub」:替代

import re

a='1xxx1'

s=re.sub('1(.*?)1','456',a)
print(s)    #輸出456

d=re.sub('1(.*?)1','1%s1','asddf')
print(d)    #輸出asddf

 

以上就是正則表達式快速入門的幾個經常使用方法,學會以上方法的就能夠嘗試製做簡單的爬蟲

若有不足,歡迎你們指出!

相關文章
相關標籤/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
本站公眾號
   歡迎關注本站公眾號,獲取更多信息