最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

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

 ^:匹配行首

 $:匹配行尾

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

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

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

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

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

python中以\開頭的元字符:

特殊序列符號
意義
\A
只在字符串開始進行匹配
\Z
只在字符串結(jié)尾進行匹配
\b
匹配位于開始或結(jié)尾的空字符串
\B
匹配不位于開始或結(jié)尾的空字符串
\d
相當于[0-9]
\D
相當于[^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]

正則表達式語法表

語法 意義 說明
"." 任意字符
"^" 字符串開始 '^hello'匹配'helloworld'而不匹配'aaaahellobbb'
"$" 字符串結(jié)尾 與上同理
"*" 
0 個或多個字符(貪婪匹配)
<*>匹配<title>chinaunix</title>
"+"
1 個或多個字符(貪婪匹配
與上同理
"?"
0 個或多個字符(貪婪匹配
與上同理
*?,+?,??
以上三個取第一個匹配結(jié)果(非貪婪匹配 <*>匹配<title>
{m,n}
對于前一個字符重復(fù)m到n次,{m}亦可
a{6}匹配6個a、a{2,4}匹配2到4個a
{m,n}?
對于前一個字符重復(fù)m到n次,并取盡可能少
‘a(chǎn)aaaaa'中a{2,4}只會匹配2個
"\\"
特殊字符轉(zhuǎn)義或者特殊序列
[]
表示一個字符集 [0-9]、[a-z]、[A-Z]、[^0]
"|"
A|B,或運算
(...)
匹配括號中任意表達式
(?#...)
注釋,可忽略
(?=...)
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

匹配的標志和含義

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


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

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

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

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

search():搜索整個字符串,返回對象實例

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

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>

返回是對象實例有2個方法,

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)文章

  • Python數(shù)據(jù)分析Pandas全攻略

    Python數(shù)據(jù)分析Pandas全攻略

    在Python中,Pandas是一個非常強大的數(shù)據(jù)處理和分析庫,廣泛應(yīng)用于數(shù)據(jù)科學(xué)和數(shù)據(jù)分析領(lǐng)域,接下來通過本文介紹Python數(shù)據(jù)分析Pandas全攻略包括安裝與導(dǎo)入示例,感興趣的朋友跟隨小編一起看看吧
    2025-08-08
  • Python增量循環(huán)刪除MySQL表數(shù)據(jù)的方法

    Python增量循環(huán)刪除MySQL表數(shù)據(jù)的方法

    這篇文章主要介紹了Python增量循環(huán)刪除MySQL表數(shù)據(jù)的相關(guān)資料,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • Python數(shù)據(jù)分析之pandas函數(shù)詳解

    Python數(shù)據(jù)分析之pandas函數(shù)詳解

    這篇文章主要介紹了Python數(shù)據(jù)分析之pandas函數(shù)詳解,文中有非常詳細的代碼示例,對正在學(xué)習python的pandas函數(shù)的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-04-04
  • Pycharm安裝第三方庫的超詳細步驟

    Pycharm安裝第三方庫的超詳細步驟

    使用python時,為了提高效率,安裝添加第三方庫是必不可少的,下面這篇文章主要給大家介紹了關(guān)于Pycharm安裝第三方庫的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Python代碼執(zhí)行時間測量模塊timeit用法解析

    Python代碼執(zhí)行時間測量模塊timeit用法解析

    這篇文章主要介紹了Python代碼執(zhí)行時間測量模塊timeit用法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-07-07
  • Python ATM功能實現(xiàn)代碼實例

    Python ATM功能實現(xiàn)代碼實例

    這篇文章主要介紹了Python ATM功能實現(xiàn)代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-03-03
  • Python NumPy教程之遍歷數(shù)組詳解

    Python NumPy教程之遍歷數(shù)組詳解

    這篇文章主要為大家詳細介紹了Python?NumPy中遍歷數(shù)組的方法,文中的示例代碼講解詳細,對我們學(xué)習Python有一定幫助,需要的可以參考一下
    2022-08-08
  • pycharm遠程連接docker容器的操作流程

    pycharm遠程連接docker容器的操作流程

    這篇文章主要給大家介紹了pycharm遠程連接docker容器的操作流程,文中通過代碼示例和圖文講解介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2023-08-08
  • python目標檢測非極大抑制NMS與Soft-NMS

    python目標檢測非極大抑制NMS與Soft-NMS

    這篇文章主要weidajia?介紹了python目標檢測非極大抑制NMS與Soft-NMS實現(xiàn)過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Python辦公自動化之輕松調(diào)整Word/PDF頁面大小為Legal尺寸

    Python辦公自動化之輕松調(diào)整Word/PDF頁面大小為Legal尺寸

    本文主要為大家科普海外常用紙張的尺寸差異,并分享如何使用?Spire.Doc?for?Python?和?Spire.PDF?for?Python?組件,通過代碼一鍵設(shè)置?Word?和?PDF?文檔頁面大小,希望對大家有所幫助
    2026-06-06

最新評論

黑山县| 大新县| 通化县| 景谷| 庆安县| 山阳县| 贺兰县| 商南县| 肥乡县| 农安县| 青铜峡市| 吉木乃县| 漳平市| 东丽区| 措美县| 福鼎市| 衡南县| 陵水| 云龙县| 玉环县| 浑源县| 攀枝花市| 高陵县| 临沂市| 天水市| 思茅市| 阿拉善盟| 红原县| 武隆县| 凌海市| 喀喇沁旗| 佛坪县| 肇东市| 泗水县| 古交市| 梓潼县| 安图县| 蕉岭县| 孝昌县| 福州市| 钦州市|