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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

re.sub用法

發布時間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 re.sub用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

re.sub功能是對于一個輸入的字符串,利用正則表達式,來實現字符串替換處理的功能返回處理后的字符串

re.sub共有五個參數

三個必選參數pattern,repl,string

兩個可選參數count,flags

?

pattern,表示正則中的模式字符串

  反斜杠加數字(\n)表示對應匹配的也就是用之前匹配到的字符串補充到這個位置,例如

  將“hello python,ni hao c,zai jian python”替換為php,代碼如下替換成功

import re
inputstr="hello python,ni hao c,zai jian python"
replacestr=re.sub(r"hello(\w+),ni hao(\w+),zai jian \1","php",inputstr)
print(replacestr)

代碼中的\1表示第一次匹配到的字符串也就是“python”,這樣可以匹配原來的字符串,從而整個字符串替換為php

若改為下面這樣

import re
inputstr="hello python,ni hao c,zai jian python"
replacestr=re.sub(r"hello (\w+),ni hao (\w+),zai jian \2","php",inputstr)
print(replacestr)

代碼中的\2表示第二次匹配到的字符串也就是“c”,顯然不能和原來的字符串匹配,所以不會替換

這里是為了說明區別\n代表的是第n次所匹配到字符串,而不是第n次用到的匹配模式

?

?

repl,表示要被替換的,可以是字符串也可以是函數,

  • 如果是字符串,則所有的反斜杠轉義字符都會被處理
  • \n:被處理為對應的換行符
  • \r :被處理為回車符
  • 不能被識別的轉義字符,則只是被識別為普通的字符,例如:\j被處理為j這個字母本身
  • 反斜杠加g以及中括號內一個名字,即\g<name>對應命名了的組
import re
inputStr="hello python,ni hao c,zai jian python"
replaceStr=re.sub(r"hello (\w+),ni hao (\w+),zai jian \1","\g<2>",inputStr)
print replaceStr
  • 運行結束輸出c,這里的g<2>表示用第二個匹配到的字符串進行替換,也就是標紅部分
  • 也可以用命名分組的方式
import re
inputStr="hello python,ni hao c,zai jian python"
replaceStr=re.sub(r"hello (?P<word1>\w+),ni hao (?P<word2>\w+),zai jian \1","\g<word2>",inputStr)
print replaceStr
  • 輸出結果為c,將每個匹配的字符串進行了命名,word2匹配到的是c
  • 如果是函數,則可以這樣使用
import re
def pythonSubDemo():inputStr="hello 123 world 456";def _add111(matched):intStr=matched.group("number")intValue=int(intStr)addValue=intValue+111addValueStr=str(addValue)return addValueStrreplacedStr=re.sub("(?P<number>\d+)",_add111,inputStr)print replacedStr
if __name__=="__main__":pythonSubDemo()

主要代碼解釋,匹配字符串中的數字,將其命名為組number,一共匹配到兩個123和456

將匹配到的東西執行_add111函數,判斷是不是組名為number,然后執行

?

  • string,要處理的字符串
  • count,限定替換的個數,默認為替換所有
  • flags,匹配模式,可以使用按位或‘|‘表示同時生效,也可以在正則表達式中指定。
    • re.I忽略大小寫
    • re.L表示特殊字符集\w,\W,\b,\B,\s,\S
    • re.M表示多行模式
    • re.S ‘.’包括換行符在內的任意字符
    • re.U表示特殊字符集\w,\W,\b,\B,\d,\D,\s,\D

?

轉載于:https://www.cnblogs.com/z-x-y/p/9633212.html

總結

以上是生活随笔為你收集整理的re.sub用法的全部內容,希望文章能夠幫你解決所遇到的問題。

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