在python中,
使用re.sub
,如何用新字符串替换子字符串?
这
number = "20"
s = "hello number 10, Agosto 19"
到
s = "hello number 20, Agosto 19"
我试试
re.sub(r'number ([0-9]*)', number, s)
数字10
就是一个例子,字符串中的数字可以是任意数字。
答案 0 :(得分:3)
你是说这个?
>>> import re
>>> m = re.sub(r'10', r'20', "hello number 10, Agosto 19")
>>> m
'hello number 20, Agosto 19'
OR
使用lookbehind,
>>> number = "20"
>>> number
'20'
>>> m = re.sub(r'(?<=number )\d+', number, "hello number 10, Agosto 19")
>>> m
'hello number 20, Agosto 19'
答案 1 :(得分:2)
如果您不知道该号码,但知道后面跟着,
import re
re.sub("\d+(?=,)","20",s) # one or more digits followed by a ,
hello number 20, Agosto 19
import re
re.sub("(\d+)","20",s,1) # first occurrence
hello number 20, Agosto 19
答案 2 :(得分:1)
不要在这种简单的情况下使用正则表达式。正常string manipulation就足够了(快速):
s = "hello number 10, Agosto 19"
s = s.replace('10', '20')