python re.sub:用字符串替换子字符串

2024-04-25 18:58:57 发布

您现在位置:Python中文网/ 问答频道 /正文

在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就是一个例子,字符串中的数字可以是任何数字。


Tags: 字符串re编辑numberhello数字例子agosto
3条回答

如果您不知道这个数字,但知道它后面跟着一个,

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

对于这种简单的情况,不要使用regex。正常的string manipulation就足够了(而且很快):

s = "hello number 10, Agosto 19"
s = s.replace('10', '20')

你是说这个?

>>> import re
>>> m = re.sub(r'10', r'20', "hello number 10, Agosto 19")
>>> m
'hello number 20, Agosto 19'

或者

使用lookbehind

>>> number = "20"
>>> number
'20'
>>> m = re.sub(r'(?<=number )\d+', number, "hello number 10, Agosto 19")
>>> m
'hello number 20, Agosto 19'

相关问题 更多 >