1. 程式人生 > >Python 3.6 re模組基本函式介紹

Python 3.6 re模組基本函式介紹

python裡提供了兩種對正則表示式的操作:match和serch

1.match

函式原型:re.match(pattern, string, flags)

pattern為正則表示式,string為被匹配的文字,flags是匹配規則,如是否區別大小寫等,若匹配到返回match object,若無,返回None

import re
data="oiudasmiasdiuthjdks79854.,;'34687132asd4f "
result=re.match('asd',data)
print(result.group(0))
執行結果:

2.search

函式原型:re.search(pattern, string, flags)

含義同上

import re
data="oiudasmiasdiuthjdks79854.,;'346871325asd4f "
result=re.search('asd',data)
print(result.group(0))
執行結果:


match 和 search的區別:match從字串的開始位置開始匹配,若開始部分不匹配,則返回None,search則匹配整個字串,只要字串有符合表示式規則的就返回一個match object。

3.findall

函式原型:findall(pattern, string, flags=0)

pattern為正則表示式,string為被匹配的文字,flag為替換規則,如是否區分大小寫。若匹配到一個及以上的結果返回一個list。

import re
data="oiudasmiasdiuthjdks79854.,;'346871325asd4f "
result=re.findall('asd',data)
print(result)
執行結果:


4.finditer

函式原型:finditer(pattern, string, flags=0)意義同上,只不過返回的是一個迭代器

import re
data="oiudasmiasdiuthjdks79854.,;'346871325asd4f "
result=re.finditer('asd',data)
print(result)
for x in result:
    print(x.group())
執行結果:

5.re.subn與re.sub

函式原型:subn(pattern, repl, string, count=0, flags=0)

    sub(pattern, repl, string, count=0, flags=0)

pattern為正則表示式,repl為替換的文字,string是被匹配的文字,count是替換次數,預設為0,表示全部替換,flag是匹配規則,如是否區別大小寫等,可省略。

subn返回的結果是一個元組(替換後的字串,替換次數)。

sub僅返回替換後的字串。

不區分大小寫把首次匹配到的‘asd'文字替換為'jojo'

import re
data="oiudasmiAsdiuthjdks79854.,;'346871325asd4f "
result=re.subn('asd','jojo',data,count=1,flags=2)
print(result)
執行結果:

6.re.spilt

函式原型:split(pattern, string, maxsplit=0, flags=0)

pattern為正則表示式,string是被匹配的文字,maxspilt為分割次數,預設下為0,flag為匹配規則。返回的是分割後的字串組成的元組

import re
data="oiudasmiasdiuthjdks79854.,;'346871325asd4f "
result=re.split('asd',data)
print(result)
執行結果:


7.escape

函式原型:escape(pattern)

把pattern裡的除數字字母外所有的字元前加一個斜槓

import re
data="oiudasmiasdiuthjdks79854.,;'346871325asd4f "
result=re.escape('asd.;/.,')
print(result)
執行結果:

8.match object

屬性:string :傳入的文字

    pos 和 endpos:開始的索引和結束的索引,索引預設以0開始

    lastgroup:最後匹配到分組的名稱,若該分組沒有別名或者沒有捕獲,則為None

    lastindex:最後匹配到分組的索引

import re
data="oiudasmiasdiuthjdks79854.,;'346871325asd4f "
result=re.search('asd',data)
print(result.string)
print(result.pos)
print(result.endpos)
print(result.lastgroup)
print(result.lastindex)

執行結果


方法:

group():返回捕獲的子串

start(),end():返回字串在原字串開始/結束的索引

span():返回(start(),end())

expand(template):將匹配到的模版在template中展開

import re
data="oiudasmiasdiuthjdks79854.,;'346871325asd4f "
result=re.search('asd',data)
print(result.start())
print(result.end())
print(result.span())
print(result.expand('result is \g<0>'))

執行結果:



相關推薦

Python 3.6 re模組基本函式介紹

python裡提供了兩種對正則表示式的操作:match和serch 1.match 函式原型:re.match(pattern, string, flags) pattern為正則表示式,string為被匹配的文字,flags是匹配規則,如是否區別大小寫等,若匹配到返回ma

Python 3.6 模組學習math庫常見函式

math.pi                數學常數π= 3.141592…… math.e                數學常數e = 2.718281…. math.ta

Python 3.6模組學習urllib的urllib.request.urlopen()函式學習

urllib提供了一系列用於操作URL的功能。包含urllib.request,urllib.error,urllib.parse,urllib.robotparser四個子模組。 官網資料如下:

Python 3.6 -win64環境安裝PIL模組

PIL:Python Imaging Library,已經是Python平臺事實上的影象處理標準庫了。PIL功能非常強大,但API卻非常簡單易用。 由於PIL僅支援到Python 2.7,加上年久失修,於是一群志願者在PIL的基礎上建立了相容的版本,名字叫Pillow,支援最新Python 3.x,又加入了

Python基本函式介紹

range(): range(1,5) # 返回一個列表,其元素包括1,2,3,4(不包含5) [1, 2, 3, 4] range(1,5,2) # 列表中包含1,間隔2後再有3,由於再間隔2後為5,不包含5,所以只有1和3 [1, 3] range(5) # 列表中有5個數,從0到(

Python 3.7.1 模組 正則表示式 re

正則表示式操作 1. 正則表示式語法 1.1 特殊字元 . ^ $ * + ? *?,+?,?? {m} {m,n} {m,n}

Python 3.6中reduce函式和cmp函式

1,Python 3中取消了cmp函式,使用cmp功能的話需按如下所示(方法一種): import operator #help(operator) ... __ge__ = ge(...) ge(a, b) -- Same as a>=b. __eq__ = eq(...

Python 3.6學習--基礎3函式的定義

>>> def fib(n): # write Fibonacci series up to n ... """Print a Fibonacci series up to n.""" ... a, b = 0, 1 ...

python 3.6 安裝json 模組(simplejson)

JSON 相關概念: 序列化(Serialization):將物件的狀態資訊轉換為可以儲存或可以通過網路傳輸的過程,傳輸的格式可以是JSON,XML等。反序列化就是從儲存區域(JSON,XML)讀取反序列化物件的狀態,重新建立該物件。      JSON(Java S

python開發之路---第二章之--基本函式介紹

1、函式: 是指一組語句的集合,通過一個名字(函式名)封裝起來,要想執行這個函式,只需要呼叫函式名即可 優點: # 減少重複程式碼 # 使程式可擴充套件 # 使程式易維 栗子1: 1 def sayhi(): 2 print ('hello') 3 4 sayhi() ##

Python—numpy模組函式介紹(一)numpy.ones、empty等

NumPy陣列的維數稱為秩(rank),一維陣列的秩為1,二維陣列的秩為2,以此類推。在NumPy中,每一個線性的陣列稱為是一個軸(axes),秩其實是描述軸的數量。比如說,二維陣列相當於是一個一維陣列,而這個一維陣列中每個元素又是一個一維陣列。所以這個一維陣列

Python re模組 相關方法介紹

【程式碼示例】re模組方法使用。>>> import re>>> text="172.0.0.1">>> print(re.split("[\.]+",text))#按照模式進行字串分割,此處按照“.”進行分割['172'

Python 3.6.4 queue模組

常用方法 put(item[, block[, timeout]]) 向佇列裡新增資料。 引數 item:要放入佇列的資料。 block:可選引數,預設值為True。當值為True時,阻塞呼叫(當棧滿一直無空間可用,阻塞呼叫,直到有棧有空間,或timeout秒後

Python 學習(3)——re模組

最近也用到了重新模組,內嵌的重新模組提供了正則表示式相關的功能。傳說中,正則表示式模式被編譯成一系列的位元組碼,然後由用Ç編寫的匹配引擎執行。 常用的方法如下: 模式:匹配的正則表達是 串:要匹配的字串 國旗:標識位 1:re.match(pattern,strin

python 3.6 安裝 win32 win32com模組

本人使用python3.6,最近要使用到pywin32中的為win32com模組,於是嘗試安裝,主要方法有以下幾種: 1.在http://sourceforge.net/projects/pywin32/files/pywin32/ 上下載對應的版本進行安裝,對build22

Pythonre模組常用函式

正則表示式(可以稱為REs,regex,regex pattens)是一個小巧的,高度專業化的程式語言,它內嵌於python開發語言中,可通過re模組使用。正則表示式的pattern可以被編譯成一系列的位元組碼,然後用C編寫的引擎執行。下面簡單介紹下正則表示式的語法。 正則

python介面自動化測試 - mock模組基本使用介紹

mock簡介 py3已將mock整合到unittest庫中 為的就是更好的進行單元測試 簡單理解,模擬介面返回引數 通俗易懂,直接修改介面返回引數的值   mock作用 解決依賴問題,達到解耦作用 當我們測試某個目標介面(模組)時,該介面依賴其他介面,當被依賴的介面未開發完成時,可以用mock模

centos 6.9安裝python 3.6

令行 啟用 cal 頭部 fig org conf 源碼包 下載 1、下載源碼包在官網按照需要下載到本地 wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz 2、解壓源碼包 tar -

Python 3.6 使用 pyinstaller 打包exe文件遇到的問題

python pyinstaller 自己做了一個加密解密的小軟件,想打包成exe文件。在網上搜發現pyinstaller使用起來簡單點。在這裏記錄自己遇到問題使用的是Python 3.6版本,直接使用pip安裝pip install pyinstaller安裝過程很順利,安裝的是3.2.1版本使用看

Python 3.6學習筆記(一)

示例 ror 功能 put -m 但是 對象 初始化 absolut 開始之前 基礎示例 Python語法基礎,python語法比較簡單,采用縮緊方式。 # print absolute value of a integer a = 100 if a >= 0: