失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python re 替换_python字符串替换之re.sub()

python re 替换_python字符串替换之re.sub()

时间:2019-06-30 08:41:48

相关推荐

python re 替换_python字符串替换之re.sub()

re.sub(pattern,repl,string,count=0,flags=0)

pattern可以是一个字符串也可以是一个正则,用于匹配要替换的字符,如果不写,字符串不做修改。\1 代表第一个分组

repl是将会被替换的值,repl可以是字符串也可以是一个方法。如果是一个字符串,反斜杠会被处理为逃逸字符,如\n会被替换为换行,等等。repl如果是一个function,每一个被匹配到的字段串执行替换函数。

\g<1> 代表前面pattern里面第一个分组,可以简写为\1,\g<0>代表前面pattern匹配到的所有字符串。

count是pattern被替换的最大次数,默认是0会替换所有。有时候可能只想替换一部分,可以用到count

实例1:

a = re.sub(r'hello', 'i love the', 'hello world')

print(a)

'i love the world' #hello world里面的hello被 i love the替换

实例2:

>>> a = re.sub(r'(\d+)', 'hello', 'my numer is 400 and door num is 200')

>>> a

'my numer is hello and door num is hello' #数字400 和 200 被hello替换

实例3:

a = re.sub(r'hello (\w+), nihao \1', r'emma','hello sherry, nihao sherry')

>>> a

'emma' #\1代表第一个分组的值即sherry,因为有两个sherry,所以用\1可以指代第二个,这样整个字符串被emma替换

示例4:

>>> a = re.sub('(\d{4})-(\d{2})-(\d{2})', r'\2-\3-\1', '-06-07')

>>> a

'06-07-'

>>> a = re.sub('(\d{4})-(\d{2})-(\d{2})', r'\g<2>-\g<3>-\g<1>', '-06-07')

>>> a

'06-07-' #\2 和 \g<2> 指代的的都是前面的第二个分组

示例5:

import re

def replace_num(str):

numDict = {'0':'〇','1':'一','2':'二','3':'三','4':'四','5':'五','6':'六','7':'七','8':'八','9':'九'}

print(str.group())

return numDict[str.group()]

my_str = '6月7号'

a = re.sub(r'(\d)', replace_num, my_str)

print(a) #每次匹配一个数字,执行函数,获取替换后的值

re.subn(pattern,repl,string,count=0,flags=0)

和sub()函数一样,只是返回的是一个tuple,替换后的字符串和替换的个数

如果觉得《python re 替换_python字符串替换之re.sub()》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。