python笔记54-re正则匹配替换字符串(sub和subn)
2021/6/2 22:25:21
本文主要是介绍python笔记54-re正则匹配替换字符串(sub和subn),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言python 里面可以用 replace 实现简单的替换字符串操作,如果要实现复杂一点的替换字符串操作,需用到正则表达式。
re.sub用于替换字符串中匹配项,返回一个替换后的字符串,subn方法与sub()相同, 但返回一个元组, 其中包含新字符串和替换次数。
Python 的 re 模块提供了re.sub用于替换字符串中的匹配项,sub是substitute表示替换。
- pattern:该参数表示正则中的模式字符串;
- repl:repl可以是字符串,也可以是可调用的函数对象;如果是字符串,则处理其中的反斜杠转义。如果它是可调用的函数对象,则传递match对象,并且必须返回要使用的替换字符串
- string:该参数表示要被处理(查找替换)的原始字符串;
- count:可选参数,表示是要替换的最大次数,而且必须是非负整数,该参数默认为0,即所有的匹配都会被替换;
- flags:可选参数,表示编译时用的匹配模式(如忽略大小写、多行模式等),数字形式,默认为0。
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)sub使用示例
将字符串中的数字替换成*号
import re ''' 替换字符串中的数字为*号 ''' s = '作者-上海悠悠 QQ交流群:717225969 blog地址:https://www.cnblogs.com/yoyoketang/ 欢迎收藏' new = re.sub("[0-9]", "*", s) print(new) # 作者-上海悠悠 QQ交流群:********* blog地址:https://www.cnblogs.com/yoyoketang/ 欢迎收藏
把字符串 s 中的每个空格替换成"%20"
import re ''' 替换s中的空格为%20 ''' s = "We are happy." print(re.sub(r' ', "%20", s)) # We%20are%20happy.
把字符串中的连续数字替换成hello
import re ''' 把字符串中的连续数字替换成hello ''' s = "the number 200-40-3000" print(re.sub(r'[\d]+', "hello", s)) # the number hello-hello-hello
替换时间格式 01/11/2021 替换成 2021/01/11
import re ''' 替换时间格式 01/11/2021 替换成 2021/01/11 ''' s = "today is 01-11-2021." day = re.sub(r'(\d{2})-(\d{2})-(\d{4})', r'\3-\2-\1', s) print(day) # today is 2021-11-01. # 也可以用g<3>-g<2>-g<1> day2 = re.sub(r'(\d{2})-(\d{2})-(\d{4})', r'g<3>-g<2>-g<1>', s) print(day) # today is 2021-11-01.
\3
和 \g<3>
指代的的都是前面匹配的第3个分组
匹配字符串中的数字加2
import re ''' 匹配字符串中的数字加2 ''' def addAge(match) ->str: '''返回匹配的值加2''' age = match.group() return str(int(age)+2) s = 'my age is 20' # repl 如果它是可调用的函数对象,则传递match对象,并且必须返回要使用的替换字符串 x = re.sub(r'[\d]+', addAge, s) print(x) # my age is 22count替换次数
sub 加 count 参数可以控制要替换的最大次数,而且必须是非负整数,该参数默认为0,即所有的匹配都会被替换;
import re ''' 替换字符串中的空格为%20,只替换一次 ''' s = "We are happy." print(re.sub(" ", "%20", s, count=1)) # We%20are happy.subn方法使用
subn方法与sub()相同, 但返回一个元组, 其中包含新字符串和替换次数。
import re ''' 替换字符串中的空格为%20,只替换一次 ''' s = "We are happy." x, n = re.subn(" ", "%20", s, ) print("替换后:", x) print("替换次数: ", n)
运行结果
替换后: We%20are%20happy.
替换次数: 2
这篇关于python笔记54-re正则匹配替换字符串(sub和subn)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04Python外包有哪些常见的主要库-icode9专业技术文章分享
- 2024-10-02基于深度学习的钢铁缺陷检测系统(yolov8、注意力机制、PyQt5界面、Python)
- 2024-10-01怎么用python搭建一个系统-icode9专业技术文章分享
- 2024-09-30Python基础入门教程
- 2024-09-30获取参数学习:Python中的基础教程
- 2024-09-30Python编程基础详解
- 2024-09-29点击加载学习:Python编程基础教程
- 2024-09-29数据科学五大Python前端库:第二部分
- 2024-09-27使用python 将ETH账户的资产打散
- 2024-09-26Python编程基础