Python小技:使用正则替换字符串
java中有String.replaceAll()
方法使用正则替换字符串,
在Python中,字符串也有一个replace
方法,但是这个方法只能精准替换,
如果想正则替换,就要改成re.sub
方法,而且这个方法使用起来不那么简洁。
方法原型:
"""
参数:
pattern : 正则中的模式字符串。
repl : 替换的字符串,也可为一个函数。
string : 要被查找替换的原始字符串。
count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。
flags : 编译时用的匹配模式,数字形式。
"""
def sub(pattern, repl, string, count=0, flags=0):
实践一下:
替换数字和字母,使用\w替换
txt = '@Java实用技术手册,我要替换(Sx_123)这些玩意。'
# 替换数字和字母,使用\w替换
txt = re.sub(r'\(\w+\)', '', txt)
print(txt)
# @Java实用技术手册,我要替换这些玩意。
替换指定的字符和字母数字,使用[]替换
txt2 = '@Java实用技术手册,我要替换(a - 1)这些玩意。'
# 替换指定的字符和字母数字,使用[]替换
txt2 = re.sub(r'\([\w -]+\)', '', txt2)
print(txt2)
# @Java实用技术手册,我要替换这些玩意。
正则表达式相关内容网上很多,实际常用的也就下面7个
符号 | 含义 |
---|---|
^ | 开头 |
$ | 结尾 |
. | 非换行符的任意字符,用的最多 |
\d | 数字 |
\w | 数字和数字+下划线_ |
. | 出现1个以上次数 |
* | 出现0个以上次数 |
– end –