網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
源代碼、參數(shù)及其意義:
def sub(pattern, repl, string, count=0, flags=0): """Return the string obtained by replacing the leftmost non-overlapping occurrences of the pattern in string by the replacement repl. repl can be either a string or a callable; if a string, backslash escapes in it are processed. If it is a callable, it's passed the Match object and must return a replacement string to be used.""" return _compile(pattern, flags).sub(repl, string, count)
從源碼中看出re.sub()函數(shù)共有5個(gè)參數(shù):
- pattern:表示正則中的模式字符串;
- repl:表示要替換的字符串(即匹配到pattern后替換為repl),也可以是個(gè)函數(shù);
- string:表示要被處理(查找替換)的原始字符串;
- count:可選參數(shù),表示要替換的最大次數(shù),而且必須是非負(fù)整數(shù),該參數(shù)默認(rèn)為0,即所有的匹配都會(huì)替換;
- flags:可選參數(shù),表示編譯時(shí)用的匹配模式(如忽略大小寫、多行模式等),數(shù)字形式,默認(rèn)為0。
re.sub():匹配替換為選擇的文本。
1.匹配單個(gè)數(shù)字或字母
示例代碼:【只匹配單一數(shù)字】
import re s = "您好,歡迎來(lái)到我的博客:https://blog.csdn.net/weixin_44799217,,,###,,,我的郵箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 只匹配單一數(shù)字 ret = re.sub(r'[0-9]', "*", s) print(ret)
運(yùn)行結(jié)果:
re.sub(r'[0-9]', '*', s)
?這句話表示只匹配單一數(shù)字,并將每一個(gè)數(shù)字替換為一個(gè)星號(hào)?。
示例代碼:【只匹配單一字母】
import re s = "您好,歡迎來(lái)到我的博客:https://blog.csdn.net/weixin_44799217,,,###,,,我的郵箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 只匹配單一字母 ret = re.sub(r'[a-z]', "*", s) print(ret) ret = re.sub(r'[A-Z]', "*", s) print(ret) ret = re.sub(r'[a-zA-Z]', "*", s) print(ret) ret = re.sub(r'[A-z]', "*", s) print(ret)
運(yùn)行結(jié)果:
?re.sub(r'[a-z]', '*', s) 表示只匹配單一小寫字母,并將每一個(gè)小寫字母替換為一個(gè)星號(hào) 。re.sub(r'[A-Z]', '*', s) 表示只匹配單一大寫字母,并將每一個(gè)大寫字母替換為一個(gè)星號(hào) 。re.sub(r'[A-Za-z]', '*', s) 這句話則表示只匹配單一字母,并將每一個(gè)字母替換為一個(gè)星號(hào) 。
示例代碼:【匹配單一數(shù)字和字母】
import re s = "您好,歡迎來(lái)到我的博客:https://blog.csdn.net/weixin_44799217,,,###,,,我的郵箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配單一數(shù)字和字母 ret = re.sub(r'[0-9a-z]', "*", s) print(ret) ret = re.sub(r'[0-9A-Z]', "*", s) print(ret) ret = re.sub(r'[0-9a-zA-Z]', "*", s) print(ret) ret = re.sub(r'[0-9A-z]', "*", s) print(ret)
運(yùn)行結(jié)果:
re.sub(r'[0-9A-Z]', '*', s) 表示只匹配單一數(shù)字和大寫字母,并將每一個(gè)數(shù)字和大寫字母替換為一個(gè)星號(hào) 。
re.sub(r'[0-9a-z]', '*', s) 表示只匹配單一數(shù)字和小寫字母,并將每一個(gè)數(shù)字和小寫字母替換為一個(gè)星號(hào) 。
re.sub(r'[0-9A-Za-z]', '*', s) 表示只匹配單一數(shù)字和字母,并將每一個(gè)數(shù)字和字母替換為一個(gè)星號(hào) 。
2.匹配多個(gè)數(shù)字或字母
注意:這里的所說(shuō)的多個(gè)指的是大于等于一個(gè)。
示例代碼:【匹配多個(gè)數(shù)字】
import re s = "您好,歡迎來(lái)到我的博客:https://blog.csdn.net/weixin_44799217,,,###,,,我的郵箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配多個(gè)數(shù)字 ret = re.sub(r'[0-9]+', "*", s) print(ret)
運(yùn)行結(jié)果:
re.sub(r'[0-9]+', '*', s)
?表示匹配多個(gè)連續(xù)的數(shù)字,并將多個(gè)連續(xù)的數(shù)字替換為一個(gè)星號(hào)?。
示例代碼:【匹配多個(gè)字母】
import re s = "您好,歡迎來(lái)到我的博客:https://blog.csdn.net/weixin_44799217,,,###,,,我的郵箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配多個(gè)字母 ret = re.sub(r'[a-z]+', "*", s) print(ret) ret = re.sub(r'[A-Z]+', "*", s) print(ret) ret = re.sub(r'[a-zA-Z]+', "*", s) print(ret)
運(yùn)行結(jié)果:
- re.sub(r'[a-z]+', '*', s) 表示匹配多個(gè)連續(xù)的小寫字母,并將多個(gè)連續(xù)的小寫字母替換為一個(gè)星號(hào) 。
- re.sub(r'[A-Z]+', '*', s) 表示匹配多個(gè)連續(xù)的大寫字母,并將多個(gè)連續(xù)的大寫字母替換為一個(gè)星號(hào) 。
- re.sub(r'[A-Za-z]+', '*', s) 表示匹配多個(gè)連續(xù)的字母,并將多個(gè)連續(xù)的字母替換為一個(gè)星號(hào) 。
示例代碼:【匹配多個(gè)連續(xù)數(shù)字和字母】
import re s = "您好,歡迎來(lái)到我的博客:https://blog.csdn.net/weixin_44799217,,,###,,,我的郵箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配多個(gè)數(shù)字和字母 ret = re.sub(r'[0-9a-zA-Z]+', "*", s) print(ret)
運(yùn)行結(jié)果:
re.sub(r'[0-9A-Za-z]+', '*', s)
?表示匹配多個(gè)連續(xù)的數(shù)字和字母,并將多個(gè)連續(xù)的數(shù)字、連續(xù)的字母、連續(xù)的數(shù)字和字母替換為一個(gè)星號(hào)?。
3.匹配其他
示例代碼:【匹配非數(shù)字】
import re s = "您好,歡迎來(lái)到我的博客:https://blog.csdn.net/weixin_44799217,,,###,,,我的郵箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配非數(shù)字 ret = re.sub(r'[^0-9]', "*", s) print(ret) ret = re.sub(r'[^0-9]+', "*", s) print(ret)
運(yùn)行結(jié)果:
-
re.sub(r'[^0-9]', '*', s)
?表示匹配單個(gè)非數(shù)字,并將單個(gè)非數(shù)字替換為一個(gè)星號(hào)?。 -
re.sub(r'[^0-9]+', '*', s)
?表示匹配多個(gè)連續(xù)的非數(shù)字,并將多個(gè)連續(xù)的非數(shù)字替換為一個(gè)星號(hào)?。
示例代碼:【匹配非字母】
import re s = "您好,歡迎來(lái)到我的博客:https://blog.csdn.net/weixin_44799217,,,###,,,我的郵箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配非字母 ret = re.sub(r'[^a-z]', "*", s) print(ret) ret = re.sub(r'[^A-Z]', "*", s) print(ret) ret = re.sub(r'[^a-zA-Z]', "*", s) print(ret) ret = re.sub(r'[^a-z]+', "*", s) print(ret) ret = re.sub(r'[^A-Z]+', "*", s) print(ret) ret = re.sub(r'[^a-zA-Z]+', "*", s) print(ret)
運(yùn)行結(jié)果:
- re.sub(r'[^a-z]', '*', s) 表示匹配單個(gè)非小寫字母,并將單個(gè)非小寫字母替換為一個(gè)星號(hào) 。
- re.sub(r'[^A-Z]', '*', s) 表示匹配單個(gè)非大寫字母,并將單個(gè)非大寫字母替換為一個(gè)星號(hào) 。
- re.sub(r'[^A-Za-z]', '*', s) 表示匹配單個(gè)非字母,并將單個(gè)非字母替換為一個(gè)星號(hào) 。
- re.sub(r'[^a-z]+', '*', s) 表示匹配多個(gè)連續(xù)的非小寫字母,并將多個(gè)連續(xù)的非小寫字母替換為一個(gè)星號(hào) 。
- re.sub(r'[^A-Z]+', '*', s) 表示匹配多個(gè)連續(xù)的非大寫字母,并將多個(gè)連續(xù)的非大寫字母替換為一個(gè)星號(hào) 。
- re.sub(r'[^A-Za-z]+', '*', s)表示匹配多個(gè)連續(xù)的非字母,并將多個(gè)連續(xù)的非字母替換為一個(gè)星號(hào) 。
示例代碼:【匹配非數(shù)字和非字母】
import re s = "您好,歡迎來(lái)到我的博客:https://blog.csdn.net/weixin_44799217,,,###,,,我的郵箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配非數(shù)字和非字母 ret = re.sub(r'[^0-9a-zA-Z]', "*", s) print(ret) ret = re.sub(r'[^0-9a-zA-Z]+', "*", s) print(ret)
運(yùn)行結(jié)果:
- re.sub(r'[^0-9A-Za-z]', '*', s) 表示匹配單個(gè)非數(shù)字和非字母,并將單個(gè)非數(shù)字和非字母替換為一個(gè)星號(hào) 。
- re.sub(r'[^0-9A-Za-z]+', '*', s) 表示匹配多個(gè)連續(xù)的非數(shù)字和非字母,并將多個(gè)連續(xù)的非數(shù)字和非字母替換為一個(gè)星號(hào) 。
示例代碼:【匹配固定形式】【只保留字母和空格,將 repl 設(shè)置為空字符即可】
import re s = "您好,歡迎來(lái)到我的博客:https://blog.csdn.net/weixin_44799217,,,###,,,我的郵箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配固定形式 ret = re.sub(r'[^a-z ]', " ", s) print(ret) ret = re.sub(r'[^a-z ]+', " ", s) print(ret) ret = re.sub(r'[^a-zA-Z ]', " ", s) print(ret) ret = re.sub(r'[^a-zA-Z ]+', " ", s) print(ret)
運(yùn)行結(jié)果:
示例代碼:【去除以 @ 開(kāi)頭的英文單詞】
import re s = "您好,歡迎來(lái)到我的博客:https://blog.csdn.net/weixin_44799217,,,###,,,我的郵箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 去除以 @ 開(kāi)頭的英文單詞 ret = re.sub(r'@[a-zA-Z ]+', " ", s) print(ret)
運(yùn)行結(jié)果:
示例代碼:【去除原始字符串中的URL】
import re s = "您好,歡迎來(lái)到我的博客:https://blog.csdn.net/weixin_44799217,,,###,,,我的郵箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # d.去除原始字符串中的URL ret = re.sub(r'https[:.]+\S+', "", s) print(ret)
運(yùn)行結(jié)果:
示例代碼:【匹配到的所有空格使用“+”來(lái)替換】
import re s = "Long live the people's Republic of China" ret = re.sub("\s", "+", s) print(ret) ret2 = re.sub("\s", "+", s, 3) # 通過(guò)count參數(shù)控制替換的次數(shù) print(ret2)
運(yùn)行結(jié)果:
總結(jié)?
原文鏈接:https://blog.csdn.net/weixin_44799217/article/details/115100715
相關(guān)推薦
- 2022-05-17 docker停止某個(gè)容器
- 2022-12-10 C語(yǔ)言中的結(jié)構(gòu)體快排算法_C 語(yǔ)言
- 2022-08-20 oracle?delete誤刪除表數(shù)據(jù)后如何恢復(fù)_oracle
- 2022-11-25 Centos?8.2?升級(jí)內(nèi)核通過(guò)elrepo源的方法_云其它
- 2023-12-18 MyBatisSystemException異常產(chǎn)生原因及解決方案
- 2022-06-28 C#中Lambda表達(dá)式的三種寫法_C#教程
- 2022-07-02 element-ui及時(shí)清除驗(yàn)證規(guī)則
- 2022-08-01 詳解docker?API管理接口增加CA安全認(rèn)證_docker
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支