Python中使用正則處理文字

2021-10-07 22:01:41 字數 2224 閱讀 3908

在python中,有4個常見的正則處理文字的場景:校驗文字內容;提取文字內容;替換文字內容;切割文字內容。

1、校驗文字內容

python中,正則處理相關的方法在re包中,可以使用re.match 或 re.search來校驗文字。

import re

myre = re.compile(r'\a\d-\d-\d\z')

#\a開始匹配,\z匹配結束

print(myre.match('2020-07-08') is not none)

print(myre.search('2020-07-08') is not none)

2、提取文字內容

python中,使用re.findall()來提取文字內容。當有子組的時候,會返回子組的內容,沒有子組時,返回整個正則匹配到的內容。

import re 

#沒有子組時

myre = re.compile(r'\d-\d')

print(myre.findall('2020-07 2020-08'))

#有子組時

myre1 = re.compile(r'(\d)-(\d)')

print(myre1.findall('2020-07 2020-08'))

# ['2020-07', '2020-08']

# [('2020', '07'), ('2020', '08')]

#使用迭代器遍歷匹配後內容

for match in myre1.finditer('2020-07 2020-08'):

print('date: ', match[0]) # 整個正則匹配到的內容

print('year: ', match[1]) # 第乙個子組

print('month:', match[2])

# date: 2020-07

# year: 2020

# month: 07

# date: 2020-08

# year: 2020

# month: 08

3、替換文字內容

python中常用re.sub和re.subn方法進行文字替換,re.subn返回替換的次數。

import re

myre = re.compile(r'(\d)-(\d)-(\d)')

print(myre.sub(r'\3年\1月\2日', '06-20-2020 07-21-2020'))

#2023年06月20日 2023年07月21日

# 可以在替換中使用 \g《數字》,如果分組多於10個時避免歧義

print(myre.sub(r'\g<3>年\g<1>月\g<2>日', '06-20-2020 07-21-2020'))

#2023年06月20日 2023年07月21日

# 返回替換次數

print(myre.subn(r'\3年\1月\2日', '06-20-2020 07-21-2020'))

#('2023年06月20日 2023年07月21日', 2)

4、切割文字內容

python中,對於空格分隔的字串可以使用split()方法,split也可指定字元分隔。

mystr1 = "i am aojin"

mystr2 = "i-am-aojin"

#預設空格分隔

print(mystr1.split())

#['i', 'am', 'aojin']

#指定分隔符

print(mystr2.split('-'))

#['i', 'am', 'aojin']

re包中的split方法也可以進行字串分隔。

import re

#通過標點符號切割

myre = re.compile(r'\w+')

print(myre.split("i, am! ao; jin"))

# ['i', 'am', 'ao', 'jin']

# 只切割一次

print(myre.split("i, am! ao; jin", 1))

# ['i', 'am! ao; jin']

Python使用正則匹配處理文字

文字內容處理 import re pattern re.compile xmin n.xmax n.text pattern1 re.compile xmax pattern2 re.compile xmin with open 041.textgrid as lines 一次性讀入txt檔案,並把...

python中使用minidom處理xml

pyhton中使用xml儲存配置檔案,下面是乙個簡單的例子,實測可用。產生xml檔案部分。from xml.dom import minidom def generatexml baud,com impl minidom.getdomimplementation doc impl.createdoc...

日常Python中使用正規表示式處理字串

平時常常使用python的正規表示式進行一些字串的處理,做一點簡單記錄 1.查詢字串中的特定字串 x s321sdd55ii re.findall r d x 321 55 2.把字串按正則規則切片 x sfas sadfaee d serassd re.split r s x sfas sadfa...