python RE庫的基本使用!基本定義詳細講解!來源於MOOCpython,課程連結文章末尾有!
前言:
程式碼的格式為中文,因為是在WORD裡黏貼過來的。預設的是中文,所以程式碼僅供參考,直接複製黏貼使用不OK的!要改為英文格式下的: ’
Re庫介紹:
Re庫是Python的標準庫,主要用於字串匹配。
呼叫:
import re
表達型別:
raw string型別(原聲字串型別)
:r[text]
r’[1-9]\d{5}’
r’\d{3}-\d{8}\d{4}-\d{7}’
不包含轉義符:\ 的。
原聲字串中的轉義符不會被轉換!
string:\來表示\ 會更加複雜!
re.search(pattern,string,flags=0)
re.s就可以匹配換行符號啦。
實踐:
search:
import re
match = re.search(r’[1-9]\d{5}’,‘BIT 100081’)
if match:
… print(match.group(0))
…
100081
match:
import re
match = re.match(r’[1-9]\d{5}’,‘BIT 08687’)
if match:
… match.group(0)
…match.group(0)
File “”, line 1
match.group(0)
^
IndentationError: unexpected indent
(上例中,我的輸入也有錯誤。正規表示式對應的應該是6位數。然而我的是5位數。而且第一位還不是1.)
match:從字串起始位置開始匹配,因為一開始不是數字,所以匹配不到。
空變數,使用group是錯誤的!
import re
match = re.match(r’[1-9]\d{5}’,‘686870 B’)
if match:
… match.group(0)
…
‘686870’
findall:
用ls來建立一個列表。用來儲存資料!
import re
ls = re.findall(r’[1-9]\d{5}’ ,‘B123455 h434321’)
ls
[‘123455’, ‘434321’]
re.split:
import re
re.split(r’[1-9]\d{5}’ ,‘B123455 h434321’)
[‘B’, ’ h’, ‘’]
import re
re.split(r’[1-9]\d{5}’ ,‘B123455 h434321’)
[‘B’, ’ h’, ‘’]re.split(r’[1-9]\d{5}’ ,‘b123455 h434321’)
[‘b’, ’ h’, ‘’]re.split(r’[1-9]\d{5}’ ,‘12hh3455 78 h434321’)
[‘12hh3455 78 h’, ‘’]re.split(r’[1-9]\d{5}’ ,‘12hh3455 78 h434321’,maxsplit=1)
[‘12hh3455 78 h’, ‘’]re.split(r’[1-9]\d{5}’ ,‘12hh3455 78 h434321’,maxsplit=2)
[‘12hh3455 78 h’, ‘’]re.split(r’[1-9]\d{5}’ ,‘12hh3455 78 h434321’,maxsplit=3)
[‘12hh3455 78 h’, ‘’]
分割匹配原則,這個例子就是分割出來不是符合6個數字的元素。
其中:
12hh3455不符合連續的6個數字,所以被分割出來啦!
78 不符合6位數的要求。也被分割出來啦!
h字元後面是6個連續的數字。所以僅僅被分割出來一個字元’h’.
re.finditer:
for m in re.finditer(r’[1-9]\d{5}’, ‘b435423 kj786543’):
… if m:
… print(m.group(0))
…
435423
786543
for m in re.finditer(r’[1-9]\d{5}’, ‘b435423 kj786543 b435423 kj786543 b435423 kj786543 b435423 kj786543 b435423 kj786543 b435423 kj786543 b435423 kj786543’):
… if m:
… print(m.group(0))
…
435423
786543
435423
786543
435423
786543
435423
786543
435423
786543
435423
786543
435423
786543
re.sub:
re.sub(r’[1-9]\d{5}’, ‘:zipfbdsjv’, ‘trter123456 urvn 673328’)
‘trter:zipfbdsjv urvn :zipfbdsjv’
進行一個替換作用!
重點應該是:match
另外的用法:
一次編譯但是可以多次使用!
使用這些的時候,需要去掉相關引數!
相關文章
- HTML 超級連結詳細講解HTML
- 文章的基本結構
- Linux基本命令詳細講解和擴充套件Linux套件
- 課程講義
- Python入門課程—最詳細的Python庫介紹Python
- 詳解雙向連結串列的基本操作(C語言)C語言
- 詳解 PHP 反射的基本使用PHP反射
- python類定義的講解Python
- VS Code使用之基本設定與配置詳解
- ActiveMQ基本詳解與總結MQ
- DataBinding資料繫結基本講解
- 資料庫學習 哈工大課程 第一講 基本概念及關係資料庫
- 深入SQLite基本操作的總結詳解SQLite
- Python----Requests庫基本使用Python
- 詳解JAVA資料庫基本操作Java資料庫
- 課程連結
- 堆排序的Python實現(附詳細過程圖和講解)排序Python
- js的基本物件的定義JS物件
- 事務基本定義操作
- MySQL字符集基本概念和詳細設定MySql
- 廣義智慧集基本定義公式公式
- 函式基本定義和使用‘未完待續函式
- python連結mysql資料庫詳解PythonMySql資料庫
- python 詳解re模組Python
- 給妹子講python-S01E05字串的基本用法詳解Python字串
- Python - random 庫的詳細使用Pythonrandom
- 路飛專案使用mysql資料庫詳細講解MySql資料庫
- Python中集合的概念及基本操作詳解!Python
- 超詳細講解頁面載入過程
- Mysql加鎖過程詳解(1)-基本知識MySql
- MongoDB 基本操作詳解MongoDB
- Less(v3.9.0)使用詳解—基本用法
- Python爬蟲之Selenium庫的基本使用Python爬蟲
- 超詳細Python正規表示式操作指南(re使用),一Python
- 詳解|寫完這篇文章我終於搞懂連結串列了
- Vuex基本使用的總結Vue
- 自定義雙向迴圈連結串列基本函式介面函式
- Java講解RPC的基本實現JavaRPC