Python正則表達式字符串的匹配、替換、分割、查找方式
Python正則表達式字符串匹配、替換、分割、查找
1、search(pattern, string, flags=0) 在一個字符串中查找匹配
2、findall(pattern, string ,flags=0) 找到匹配,返回所有匹配部分的列表
3、sub(pattern, repl, string , count=0, flags=0) 將字符串中匹配正則表達式的部分替換為其他值
4、split(pattern, string ,maxsplit=0, flags=0) 根據(jù)匹配分割字符串,返回分隔符串組成的列表
用法:
In [1]: import re
In [2]: str1='imooc video=1000'
In [3]: str1.find('1000')#可以查找出索引值
Out[3]: 12
In [4]: str1='imoocvideo=1000'
In [5]: str1.find('1000')
Out[5]: 11
In [6]: info=re.search(r'\d+',str1)#'\d'代表任意一個數(shù)字,'+'可以匹配數(shù)字一次或者無限次,只能匹配最前面的
In [7]: info
Out[7]: <_sre.SRE_Match at 0xb6bf9b48>
In [8]: info.group()
Out[8]: '1000'
In [1]: import re
In [2]: str1='java=1000,python=9090'
In [3]: info=re.findall(r'\d+',str1)#找到所有匹配的字符串,并把它們放到一個列表中
In [4]: info
Out[4]: ['1000', '9090']
In [5]: sum([int(x) for x in info])
Out[5]: 10090
In [25]: def add1(match):#傳入的match是一個字符串對象,
....: val=match.group()#匹配的字符串
....: num=int(val)+1 #強制轉(zhuǎn)換
....: return str(num)#強制轉(zhuǎn)化
....:
In [28]: info=re.sub(r'\d+',add1,str4)#sub就是替換字符串和函數(shù)
In [29]: info
Out[29]: 'python video =10001'
In [35]: str6='imooc:java c++ python c#'
In [36]: re.split(r':| ',str6)#split用來分割字符串,':|'的意思是只要看見冒號和空格就會分割成一部分
Out[36]: ['imooc', 'java c++ python c#']
In [37]: re.split(r':| ',str6)
Out[37]: ['imooc', 'java', 'c++', 'python', 'c#'] Python字符串及正則表達式
字符串可以用單引號或雙引號來創(chuàng)建
也可以用三引號來創(chuàng)建多行字符串
String_1 = '加快發(fā)展' String_2 = "促進生產(chǎn)" String_3 = """吾家吾國, 吾家吾國, 吾家吾國, 吾家吾國。"""

字符串匹配函數(shù)
re.match函數(shù)(起始位置匹配成功才算成功)
- re.match("匹配的正則表達式","要匹配的字符串","控制正則表達式的匹配方式").span()
- re.match 嘗試從字符串的起始位置匹配一個模式,如果不是起始位置匹配成功的話,match()就返回 None。

re.search(掃描整個字符串并返回第一個成功的匹配)
re.search('要匹配的正則表達式','要匹配的字符串','標志位(同上)').span()
掃描整個字符串并返回第一個成功匹配,span會使結(jié)果為第一個成功匹配的位置索引

re.match 和 re.search的區(qū)別
re.match 只匹配字符串的開始,如果字符串開始不符合正則表達式,則匹配失敗,函數(shù)返回 None;而 re.search 匹配整個字符串,直到找到一個匹配。
re.sub(替換字符串中的匹配項)
re.sub(pattern, repl, string, count=0, flags=0)
- pattern: 正則表達式中模式字符串
- repl: 替換的字符串,也可為一個函數(shù)
- string: 要被查找替換的原始字符串
- count: 模式匹配后替換的最大次數(shù),默認 0 表示替換所有的匹配

recompile 函數(shù)
compile 函數(shù)用于編譯正則表達式,生成一個正則表達對象,供 match() 和 search() 這兩個函數(shù)使用。
re.compile(pattern[,flags])
- pattern:一個字符串形式的正則表達式
- flags:匹配模式,可選可不選
findall函數(shù)
findall("待匹配的字符串","指定字符串的起始位置","指定字符串的結(jié)束位置")
起始位置與結(jié)束位置可選可不選

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決使用Spyder IDE時matplotlib繪圖的顯示問題
這篇文章主要介紹了解決使用Spyder IDE時matplotlib繪圖的顯示問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
Pandas中統(tǒng)計匯總可視化函數(shù)plot()的使用
Pandas提供了許多強大的數(shù)據(jù)處理和分析功能,其中plot()函數(shù)就是其可視化功能的一個重要組成部分,本文主要介紹了Pandas中統(tǒng)計匯總可視化函數(shù)plot()的使用,感興趣的可以了解一下2025-05-05
Python實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)自動化導(dǎo)出PDF報告
本文將介紹如何使用Python構(gòu)建一個自動化工具,實現(xiàn)從MySQL數(shù)據(jù)庫提取員工數(shù)據(jù),文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-09-09
windows環(huán)境下tensorflow安裝過程詳解
這篇文章主要為大家詳細介紹了windows環(huán)境下tensorflow安裝過程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03
對tf.reduce_sum tensorflow維度上的操作詳解
今天小編就為大家分享一篇對tf.reduce_sum tensorflow維度上的操作詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
Python使用python-can實現(xiàn)合并BLF文件
python-can庫是 Python 生態(tài)中專注于 CAN 總線通信與數(shù)據(jù)處理的強大工具,本文將使用python-can為 BLF 文件合并提供高效靈活的解決方案,有需要的小伙伴可以了解下2025-07-07
Django報錯“Invalid?model?reference“的原因及解決方案
本指南詳解Django"Invalid?model?reference"錯誤解決方案,核心問題在于模型外鍵引用格式錯誤,Django要求字符串引用必須為?'app_label.ModelName'格式,但實際使用了?'apps.app_label.ModelName',本文給大家詳細介紹了解決方案,需要的朋友可以參考下2025-07-07

