我有一个很长的。txt文件,其中包含一些给定格式的参数列表。我们设它是这样的:
oneParameter = "definedStartSequenceOfTheParameter" + str(actualValueOfTheParameter) + "definedEndSequenceOfTheParameter"
我的问题是我想替换值actualValueOfTheParameter
。但是我不能使用.replace
方法,因为我从来没有真正知道actualValueOfTheParameter
的值-它可以是字符串,10位浮点数或2位整型,任何你能想到的值。
这给我带来了一个问题,是否有一些方法可以告诉Python这样的东西:
查找以"definedStartSequenceOfTheParameter"
开始并以"definedEndSequenceOfTheParameter"
结束的字符串,而不管在开始和结束字符串之间有多少或哪些字符。
我知道我可以定义一些包含for
循环的函数,但首先我想听听你的意见。所以我不会朝自己的腿开枪,以防存在一些我不知道的简单方法或逃生顺序。
使用正则表达式sub()
: https://docs.python.org/3/library/re.html#re.sub
s = "knownbeginKJLKYLHLKHDLLKDLBKBDKBknownend"
re.sub(r"(knownbegin).+(knownend)", r"1" + replacenment + r"2", s)
要构建C14L答案,请使用正则表达式。构建一个好的正则表达式的简单工具是regex101
这里有一个简单的解决方案,我想你可以自己弄清楚如何从文件中读取文本。
import re
testString = "definedStartSequenceOfTheParameterTheSpecificParameterdefinedEndSequenceOfTheParameter"
m = re.search('(?<=definedStartSequenceOfTheParameter)(.*)(?=definedEndSequenceOfTheParameter)',testString)
print(m.group(0))
输出:
TheSpecificParameter
您可以尝试str.startswith()
和str.endswith()
方法。
的例子:
string = "Hello"
if string.startswith("H") and string.endswith("o"):
print("Yay!")
else:
print("Nay!")