Python 如何用另一个数字替换字符串中的数字?
我试图用另一个数字替换字符串中的一个数字。例如,我有一个字符串“APU12_24F”,我想在第二个数字上加7,使其成为“APU12_31F” 现在,通过使用string.split,我可以简单地找到我感兴趣的号码 我不知道如何编辑由此产生的新字符串Python 如何用另一个数字替换字符串中的数字?,python,string,replace,Python,String,Replace,我试图用另一个数字替换字符串中的一个数字。例如,我有一个字符串“APU12_24F”,我想在第二个数字上加7,使其成为“APU12_31F” 现在,通过使用string.split,我可以简单地找到我感兴趣的号码 我不知道如何编辑由此产生的新字符串 def main(): f=open("edita15888_debug.txt", "r") fl = f.readlines() for x in fl: if ("APU12" in x): li
def main():
f=open("edita15888_debug.txt", "r")
fl = f.readlines()
for x in fl:
if ("APU12" in x):
list_string=split_string(x)
print(list_string);
return
def split_string_APU12(string):
# Split the string based on APU12_
list_string = string.split("APU12_")
return list_string
main()
这样的输出是有意义的,因为我将得到类似于[''',24F\n]的结果。我现在需要把24改成31,然后把它放回原来的字符串中
如果有更好的方法,请随时告诉我。我对python非常陌生,我在网上找到的所有可用的搜索/替换函数似乎都不能满足我的需要。谢谢大家! 这不是一般性的,因为我不确定其余的数据是什么样子的,但类似的东西可能会起作用:
def main():
f=open("edita15888_debug.txt", "r")
fl = f.readlines()
for x in fl:
if ("APU12" in x):
list_string=split_string_APU12(x)
list_string = int(list_string[1].split('F')[0]) + 7
list_string = "APU12_" + str(list_string)
print(list_string)
return
def split_string_APU12(string):
# Split the string based on APU12_
list_string = string.split("APU12_")
return list_string
main()
我假设你的字符串的格式是 APU12####…F (其中#####…表示可变数字,F可以是任何字母,但只能是一个)。如果是这样,您可以这样做:
# Notice the use of context managers
# I would recommend learning about this for working with files
with open('edita15888_debug.txt', 'r') as f:
fl = f.readlines()
new_strings = []
for line in fl:
beg, end = line.split('_')
# This splits the end part into number + character
number, char = int(end[:-1]), end[-1]
# Here goes your operation on the number
number += your_quantity # This may be your +7, for example
# Now joining back everything together
new_strings.append(beg + '_' + str(number) + char)
这将产生相同的字符串列表,但最后一个字母前的数字会根据需要进行修改
我希望这对你有帮助 假设模式是
\+多个数字
,您可以用regex替换它
import re
re.sub(r"_(\d+)", lambda r: '_'+str(int(r.group(1)) + 7),'APU12_24F')
我假设你需要在一个下划线后面的数字上加七。我希望,此功能将有所帮助
import re
def add_seven_to_number_after_underscore_in_a_string(aString):
regex = re.compile(r'_(\d+)')
match = regex.search(aString)
return regex.sub('_' + str(int(match.group(1)) + 7), aString)