【发布时间】:2021-09-21 12:25:53
【问题描述】:
我正在尝试使用 re.search(或 re.findall)来解释一行,并将关键字更改为一个值。
我的示例字符串是:
line = 'Text1 <<ALTER, variable = Ion1>> Text2 <<ALTER, variable = Value1>>\n'
'Na' 的 Ion1 和 1.0 的 Value1 的值,我想要返回
processedline = 'Text1 Na Text2 1.0'
为此,我尝试了以下代码:
result = re.search('<<ALTER(.*)>>', line)
aux_txt = result.group(1).split('=')
var = aux_txt[-1].strip()
value = ParameterDictionary[var]
processedline = re.sub('<<ALTER(.*)>>', str(value), line, flags=re.DOTALL)
但是,对于变量result,我得到的返回是', variable = Ion1>> Text2 <<ALTER, variable = Value1',即它不会独立处理两个关键字。
有人有什么想法吗?提前致谢!
【问题讨论】:
-
将您的
.*(贪心)修改为.*?,即非贪心以匹配可能的最短字符串。请参阅文档docs.python.org/3/howto/…
标签: python regex string python-re