Python字符串:如何只替换一些数字?
我在用re模块练习一些正则表达式。我想知道怎么做 我们可以只更改字符串中的一些数字吗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)) 您可以
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'
这个答案给出了不同的结果。