欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python re正則表達(dá)式模塊(Regular Expression)

 更新時(shí)間:2014年07月16日 09:42:59   投稿:hebedich  
Python 的 re 模塊(Regular Expression 正則表達(dá)式)提供各種正則表達(dá)式的匹配操作,在文本解析、復(fù)雜字符串分析和信息提取時(shí)是一個(gè)非常有用的工具.

模塊的的作用主要是用于字符串和文本處理,查找,搜索,替換等

復(fù)習(xí)一下基本的正則表達(dá)式吧

 .:匹配除了換行符以為的任意單個(gè)字符

 *:匹配任意字符,一個(gè),零個(gè),多個(gè)都能匹配得到 俗稱貪婪模式

+:匹配位于+之前的一個(gè)或者多個(gè)字符

 |:匹配位于|之前或者之后的字符

 ^:匹配行首

 $:匹配行尾

 ?:匹配位于?之前的零個(gè)或者一個(gè)字符,不匹配多個(gè)字符

 \:表示 \ 之后的為轉(zhuǎn)義字符

 []:匹配[]之中的任意單個(gè)字符,[0-9]表示匹配0到9任意一個(gè)數(shù)字

 ():將位于()之內(nèi)的的內(nèi)容當(dāng)作一個(gè)整體

 {}:按{}中的次數(shù)進(jìn)行匹配,100[0-9]{3}表示在100之后任意匹配一個(gè)3位數(shù)(100-999)

python中以\開頭的元字符:

特殊序列符號(hào)
意義
\A
只在字符串開始進(jìn)行匹配
\Z
只在字符串結(jié)尾進(jìn)行匹配
\b
匹配位于開始或結(jié)尾的空字符串
\B
匹配不位于開始或結(jié)尾的空字符串
\d
相當(dāng)于[0-9]
\D
相當(dāng)于[^0-9]
\s
匹配任意空白字符:[\t\n\r\r\v]
\S
匹配任意非空白字符:[^\t\n\r\r\v]
\w
匹配任意數(shù)字和字母:[a-zA-Z0-9]
\W
匹配任意非數(shù)字和字母:[^a-zA-Z0-9]

正則表達(dá)式語(yǔ)法表

語(yǔ)法 意義 說(shuō)明
"." 任意字符
"^" 字符串開始 '^hello'匹配'helloworld'而不匹配'aaaahellobbb'
"$" 字符串結(jié)尾 與上同理
"*" 
0 個(gè)或多個(gè)字符(貪婪匹配)
<*>匹配<title>chinaunix</title>
"+"
1 個(gè)或多個(gè)字符(貪婪匹配
與上同理
"?"
0 個(gè)或多個(gè)字符(貪婪匹配
與上同理
*?,+?,??
以上三個(gè)取第一個(gè)匹配結(jié)果(非貪婪匹配 <*>匹配<title>
{m,n}
對(duì)于前一個(gè)字符重復(fù)m到n次,{m}亦可
a{6}匹配6個(gè)a、a{2,4}匹配2到4個(gè)a
{m,n}?
對(duì)于前一個(gè)字符重復(fù)m到n次,并取盡可能少
‘a(chǎn)aaaaa'中a{2,4}只會(huì)匹配2個(gè)
"\\"
特殊字符轉(zhuǎn)義或者特殊序列
[]
表示一個(gè)字符集 [0-9]、[a-z]、[A-Z]、[^0]
"|"
A|B,或運(yùn)算
(...)
匹配括號(hào)中任意表達(dá)式
(?#...)
注釋,可忽略
(?=...)
Matches if ... matches next, but doesn't consume the string.
'(?=test)'  在hellotest中匹配hello
(?!...)
Matches if ... doesn't match next.
'(?!=test)'  若hello后面不為test,匹配hello
(?<=...) 
Matches if preceded by ... (must be fixed length).
'(?<=hello)test'  在hellotest中匹配test
(?<!...)
Matches if not preceded by ... (must be fixed length).
'(?<!hello)test'  在hellotest中不匹配test

匹配的標(biāo)志和含義

標(biāo)志 含義
re.I 忽略大小寫
re.L 根據(jù)本地設(shè)置而更改\w,\W,\b,\B,\s,\S的匹配內(nèi)容
re.M 多行匹配模式
re.S 使“.”元字符匹配換行符
re.U 匹配Unicode字符
re.X 忽略需要匹配模式中的空格,并且可以使用"#"號(hào)注釋


文本內(nèi)容(提取Linux下的password文件)

man:x:6:12:man:/var/cache/man:/bin/nologin

re模塊中有3個(gè)搜索函數(shù),每個(gè)函數(shù)都接受3個(gè)參數(shù)(匹配模式,要匹配的字符串,進(jìn)行匹配的標(biāo)志),如果匹配到了就返回一個(gè)對(duì)象實(shí)例,么有就返會(huì)None.

findall():用于在字符串中查找符合正則表達(dá)式的字符串,并返回這些字符串的列表

search():搜索整個(gè)字符串,返回對(duì)象實(shí)例

match():只從第一個(gè)字符開始匹配,后面的不再匹配,返回對(duì)象實(shí)例

lovelinux@LoveLinux:~/py/boke$ cat text 
man:x:6:12:man:/var/cache/man:/bin/sh
lovelinux@LoveLinux:~/py/boke$ cat test.py
#/usr/bin/env python
#coding:utf-8
import re
with open('text','r') as txt:
 f = txt.read()
 print re.match('bin',f)
 print re.search('bin',f).end() 
lovelinux@LoveLinux:~/py/boke$ python test.py 
None
34
lovelinux@LoveLinux:~/py/boke$ vim test.py
lovelinux@LoveLinux:~/py/boke$ python test.py 
None
<_sre.SRE_Match object at 0x7f12fc9f9ed0>

返回是對(duì)象實(shí)例有2個(gè)方法,

start():返回記錄匹配到字符的開始索引 

end():返回記錄匹配到字符的結(jié)束索引

lovelinux@LoveLinux:~/py/boke$ python test.py 
None
31
34
lovelinux@LoveLinux:~/py/boke$ cat test.py 
#/usr/bin/env python
#coding:utf-8
import re
with open('text','r') as txt:
 f = txt.read()
 print re.match('bin',f)
 print re.search('bin',f).start()
 print re.search('bin',f).end()

相關(guān)文章

  • Selenium?4.2.0?標(biāo)簽定位8種方法詳解

    Selenium?4.2.0?標(biāo)簽定位8種方法詳解

    這篇文章主要介紹了Selenium?4.2.0?標(biāo)簽定位8種方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • matlab和Excel的數(shù)據(jù)交互操作(非xlsread和xlswrite)

    matlab和Excel的數(shù)據(jù)交互操作(非xlsread和xlswrite)

    在使用MATLAB時(shí),可能會(huì)遇到很多表格數(shù)據(jù)的處理,有時(shí)MATLAB也需要利用現(xiàn)存的表格數(shù)據(jù)實(shí)現(xiàn)操作目的,下面這篇文章主要給大家介紹了關(guān)于matlab和Excel的交互操作的相關(guān)資料,非xlsread和xlswrite,需要的朋友可以參考下
    2021-08-08
  • Python實(shí)現(xiàn)加載及解析properties配置文件的方法

    Python實(shí)現(xiàn)加載及解析properties配置文件的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)加載及解析properties配置文件的方法,結(jié)合實(shí)例形式分析了Python針對(duì)properties配置文件的加載、讀取及解析相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • Python+tkinter實(shí)現(xiàn)樹形圖繪制

    Python+tkinter實(shí)現(xiàn)樹形圖繪制

    Treeview是ttk中的樹形表組件,功能十分強(qiáng)大,非常適用于系統(tǒng)路徑的表達(dá),下面我們就來(lái)看看如何利用這一組件實(shí)現(xiàn)樹形圖的繪制吧,有需要的可以參考下
    2023-09-09
  • python的三目運(yùn)算符和not in運(yùn)算符使用示例

    python的三目運(yùn)算符和not in運(yùn)算符使用示例

    這篇文章主要介紹了python的三目運(yùn)算符和not in運(yùn)算符使用示例,需要的朋友可以參考下
    2014-03-03
  • 使用turtle繪制五角星、分形樹

    使用turtle繪制五角星、分形樹

    這篇文章主要為大家詳細(xì)介紹了使用turtle繪制五角星、分形樹,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Python實(shí)現(xiàn)將xml導(dǎo)入至excel

    Python實(shí)現(xiàn)將xml導(dǎo)入至excel

    本文給大家講解的是使用Python的Testlink實(shí)現(xiàn)將實(shí)現(xiàn)將xml導(dǎo)入至excel表格中,方法非常的簡(jiǎn)單,另外附上其他小伙伴的方法,有需要的童鞋們可以參考下。
    2015-11-11
  • python應(yīng)用程序在windows下不出現(xiàn)cmd窗口的辦法

    python應(yīng)用程序在windows下不出現(xiàn)cmd窗口的辦法

    這篇文章主要介紹了python應(yīng)用程序在windows下不出現(xiàn)cmd窗口的辦法,適用于python寫的GTK程序并用py2exe編譯的情況下,需要的朋友可以參考下
    2014-05-05
  • python實(shí)現(xiàn)跨域代理服務(wù)器的方法

    python實(shí)現(xiàn)跨域代理服務(wù)器的方法

    這篇文章主要介紹了python實(shí)現(xiàn)跨域代理服務(wù)器的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • pandas 實(shí)現(xiàn)將NaN轉(zhuǎn)換為None

    pandas 實(shí)現(xiàn)將NaN轉(zhuǎn)換為None

    這篇文章主要介紹了pandas 實(shí)現(xiàn)將NaN轉(zhuǎn)換為None的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05

最新評(píng)論