日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

二、正则表达式操作

發布時間:2023/12/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二、正则表达式操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

正則表達式操作

  • 匹配字符串
    • 使用match()方法進行匹配
    • 使用search()方法進行匹配
    • 使用findall()方法進行匹配
  • 替換字符串
  • 分割字符串

python提供了re模塊,用于實現正則表達式的操作。在實現時,可以用re模塊提供的方法進行字符串處理,也可以先使用re模塊compile()方法將模式字符串轉換為正則表達式對象,然后再用該正則表達式對象的相關方法來操作字符串。

匹配字符串

使用match()方法進行匹配

match()方法用于從字符串的開始處進行匹配,如果在起始位置匹配成功,則返回match()對象,否則返回None。
語法格式如下:

re.match(pattern, string, [flags]) 參數描述
pattern匹配的正則表達式
string要匹配的字符串。
flags標志位,可選參數,用于控制正則表達式的匹配方式,如:是否區分大小寫,多行匹配等等。

可選標志

例如:

import re pattern=r'tb_\w+' string='TB_SHOP tb_shop' match=re.match(pattern,string,re.I) # 匹配出TB_SHOP這七個字符 print(match) # match對象中包含了匹配值的位置和匹配數據 print('匹配值的起始位置:',match.start()) print('匹配值的結束位置:',match.end()) print('匹配位置的元組:',match.span()) print('要匹配的字符串:',match.string)# 注意該方法沒有括號 # group()或者group(0)將返回整個匹配的子串,group(n)將返回第n個對應的字符串,n從1開始 print('獲取匹配到的內容:',match.group())string='商店名稱TB_SHOP tb_shop' match=re.match(pattern,string1,re.I) # 當第一個字母不符合條件時則不再進行匹配,直接返回None print(match)

group()用法詳見
https://www.cnblogs.com/erichuo/p/7909180.html

執行結果如下:

<_sre.SRE_Match object; span=(0, 7), match='TB_SHOP'> 匹配值的起始位置: 0 匹配值的結束位置: 7 匹配位置的元組: (0, 7) 要匹配的字符串: TB_SHOP tb_shop 匹配數據: TB_SHOP None

使用search()方法進行匹配

search()方法用于在整個字符串搜索第一個匹配的值,如果匹配成功,則返回match()對象,否則返回None。
語法格式如下:

re.search(pattern, string, [flags])

例如:

import re pattern=r'tb_\w+' string='TB_SHOP tb_shop' match=re.search(pattern,string,re.I) # 匹配出TB_SHOP這七個字符 print(match)string='商店名稱TB_SHOP tb_shop' match=re.search(pattern,string1,re.I) # 當第一個字母不符合條件時則不再進行匹配,直接返回None print(match)

執行結果如下:

<_sre.SRE_Match object; span=(0, 7), match='TB_SHOP'> <_sre.SRE_Match object; span=(4, 11), match='TB_SHOP'>

使用findall()方法進行匹配

findall()方法用于在整個字符串搜索所有符合正則表達式的字符串,并以列表形式返回。如果匹配成功,則返回包含匹配結構的列表,否則返回空列表。
語法格式如下:

re.findall(pattern, string, [flags])

例如:

import re pattern=r'tb_\w+' string='TB_SHOP tb_shop' match=re.findall(pattern,string,re.I)# 區分大小寫 # 匹配出TB_SHOP這七個字符 print(match)string='商店名稱TB_SHOP tb_shop' match=re.findall(pattern,string1)# 不區分大小寫 # 當第一個字母不符合條件時則不再進行匹配,直接返回None print(match)

執行結果如下:

['TB_SHOP', 'tb_shop'] ['tb_shop']

替換字符串

sub方法用于實現字符串的替換
subn()方法幾乎與sub()一樣,但是會返回一個替換的次數
語法格式如下:

re.sub(pattern, repl, string, [count], [flags])

pattern : 正則中的模式字符串。
repl : 替換的字符串,也可為一個函數
string : 要被查找替換的原始字符串。
count : 可選參數,模式匹配后替換的最大次數,默認 0 表示 替換所有的匹配。
flags:可選參數,標志位,用于控制匹配方式

例如:

import re pattern=r'1[34578]\d{9}' string='中獎號碼為787087876,聯系電話為:13866666666' result=re.sub(pattern,'138****6666',string) print(result)

執行結果如下:

中獎號碼為787087876,聯系電話為:138****6666

分割字符串

split()方法用于實現正則表達式分割字符串,并以列表的形式返回。其作用同字符串對象的·split()方法類似,所不同的就是其分割字符由模式字符串指定。
語法格式如下:

re.split(pattern, string, [maxsplit], [flags])

maxsplit:分隔次數,maxsplit=1 分隔一次,默認為 0,不限制次數。

例如:

import re str1='@你們 @我們 @他們' pattern=r'\s*@' list1=re.split(pattern,str1)# 用空格和@或者單獨的@分割字符串 print('分割后的字符串為:') for i in list1:print(i)

執行結果如下:

分割后的字符串為:你們 我們 他們

總結

以上是生活随笔為你收集整理的二、正则表达式操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。