Python字符串:如何只替换一些数字?

Python字符串:如何只替换一些数字?,python,regex,Python,Regex,我在用re模块练习一些正则表达式。我想知道怎么做 我们可以只更改字符串中的一些数字吗 a1 = 'images1/b100.png' # required: a2 = 'images2/b100.png' 我的尝试: import re a1 = 'images1/b100.png' nums = list(map(int, re.findall(r'\d+', a1))) num0 = nums[0] a2 = a1.replace(str(num0), str(num0+1)) 您可以

我在用re模块练习一些正则表达式。我想知道怎么做 我们可以只更改字符串中的一些数字吗

a1 = 'images1/b100.png'

# required:
a2 = 'images2/b100.png'
我的尝试:

import re
a1 = 'images1/b100.png'
nums = list(map(int, re.findall(r'\d+', a1)))
num0 = nums[0]
a2 = a1.replace(str(num0), str(num0+1))

您可以提供一个参数,仅替换第一次出现的参数

更改:

a2 = a1.replace(str(num0), str(num0+1))
致:

如本文所述:

str.replace(旧的,新的[,计数])

返回一个字符串的副本,其中所有出现的子字符串old都替换为new。如果给定了可选参数计数,则仅替换第一次出现的计数


您可以提供一个参数,仅替换第一次出现的参数

更改:

a2 = a1.replace(str(num0), str(num0+1))
致:

如本文所述:

str.replace(旧的,新的[,计数])

返回一个字符串的副本,其中所有出现的子字符串old都替换为new。如果给定了可选参数计数,则仅替换第一次出现的计数

您可以键入:

a2 = a1.replace(str(num0), str(num0+1), 1)
您可以键入:

a2 = a1.replace(str(num0), str(num0+1), 1)

下面是答案

a2.replace("b200","100")
结果: “images2/100.png”


如果您有任何问题,请告诉我。

以下是答案

a2.replace("b200","100")
import re
a1 = 'images1/b100.png'
matches = re.match( r'^(.*)(\d+)(\/.*)$', a1)
a2 = matches.group(1)+str(int(matches.group(2))+1)+matches.group(3)
结果: “images2/100.png”

如果你有任何问题,请告诉我

import re
a1 = 'images1/b100.png'
matches = re.match( r'^(.*)(\d+)(\/.*)$', a1)
a2 = matches.group(1)+str(int(matches.group(2))+1)+matches.group(3)
^(.*)(\d+)(\/.*)$
:以数字和任何文件名结尾的路径


^(.*)(\d+)(\/.*)$
:以数字和任何文件名结尾的路径。

您要具体更改哪个数字。是的,我知道您想将
1
更改为
2
,但您通常想更改哪个号码?是否总是将第一个数字更改为
2
?还是在第一个数字上加一个?或者将
/
前面的第一个数字更改为
2
?如果您能显示更多输入和所需输出的示例,那也太好了。@Sweeper仅显示字符串中找到的第一个数字。您想具体更改哪个数字。是的,我知道您想将
1
更改为
2
,但您通常想更改哪个号码?是否总是将第一个数字更改为
2
?还是在第一个数字上加一个?或者将
/
前面的第一个数字更改为
2
?如果您能展示更多输入和所需输出的示例,那也太好了。@Sweeper仅显示字符串中的第一个数字。对于
'images1/folder100/hello1.png'
来说,必需的是
'images2/folder100/hello2.png'
这个答案给出了不同的结果。对于
'images1/folder100/hello1.png'
来说,必需的是
'images2/folder100/hello2.png'
这个答案给出了不同的结果。