python:基于RE的替换

python:基于RE的替换,python,Python,有以下格式的字符串: name='6000_12_lig_cne_697' 我需要使用正则表达式将'12'替换为'something',获得新变量: final_name=re.sub(r'_12_', '_something_', name) 我如何将这种情况应用到识别所有模式的一般情况中,在变量名的第一个和第二个之间匹配一个数字(例如,替换部分可能是:13、24等)假设“数字”表示“一组数字0到9”,您要查找的是[0-9]+,因此: final_name=re.sub(r'_[0-9]+

有以下格式的字符串:

name='6000_12_lig_cne_697'
我需要使用正则表达式将'12'替换为'something',获得新变量:

final_name=re.sub(r'_12_', '_something_', name)
我如何将这种情况应用到识别所有模式的一般情况中,在变量名的第一个和第二个之间匹配一个数字(例如,替换部分可能是:13、24等)

假设“数字”表示“一组数字0到9”,您要查找的是
[0-9]+
,因此:

final_name=re.sub(r'_[0-9]+_', '_something_', name)
这是基本的正则表达式构造:
[0-9]
=一个字符,从
0
9
的任意字符<代码>+=上一个必须出现一次或多次。请注意,
[0-9]
也可能匹配一些更奇怪的字符,这取决于语言环境和Python如何实现

如果需要包含负数或小数,则需要对其进行修改

还请注意,
re.sub
替换所有出现的内容,而不仅仅是第一个。您可以添加
count=1
以仅更改第一个匹配的,但这可能仍然不在前两个下划线之间。从某种意义上说,最好是沿着下划线分割字符串,然后修改由此找到的第二个字段。

假设“数字”表示“一组数字0到9”,您要查找的是
[0-9]+
,因此:

final_name=re.sub(r'_[0-9]+_', '_something_', name)
这是基本的正则表达式构造:
[0-9]
=一个字符,从
0
9
的任意字符<代码>+=上一个必须出现一次或多次。请注意,
[0-9]
也可能匹配一些更奇怪的字符,这取决于语言环境和Python如何实现

如果需要包含负数或小数,则需要对其进行修改

还请注意,
re.sub
替换所有出现的内容,而不仅仅是第一个。您可以添加
count=1
以仅更改第一个匹配的,但这可能仍然不在前两个下划线之间。从某种意义上说,最好将字符串沿下划线分开,然后修改由此找到的第二个字段。

请回答您的问题并添加更多详细信息。具体说明“数字”的确切含义?正好两位数?至少一个数字?会是负面的吗?只有整数?它能否以
0
开头?是否保证输入字符串中下划线之间只有一个数字?可能是
r'.[1-9][0-9]*.
?请回答您的问题并添加更多详细信息。具体说明“数字”的确切含义?正好两位数?至少一个数字?会是负面的吗?只有整数?它能否以
0
开头?是否保证输入字符串中下划线之间只有一个数字?也许
r'.[1-9][0-9]*.