Python检索首先根据结果

2024-04-19 03:00:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在python中通过检索由此:
fv(x,y,z)开始打印x;;;打印y;;;返回x+y+z结束

我试过:begin = re.search("begin .+;;;", line)

但这将返回以下字符串:“begin print x;;;print y;;;”
你知道吗?你知道吗


Tags: 字符串researchlineprintbeginfv
2条回答

默认情况下,重复是贪婪的,这意味着它将匹配尽可能多的字符。这将导致.+向右经过第一个;;;,并匹配字符串的其余部分,直到最后一个;;;。你知道吗

要防止这种情况,请将.+更改为.+?,这会使重复变慢(匹配的字符尽可能少):

begin = re.search("begin .+?;;;", line)

您需要non-greedy版本的+。默认情况下,.+将匹配尽可能多的字符,因此它将捕获从“begin”到最后出现的“;;;”的所有内容。试试re.search("begin .+?;;;", line)。你知道吗

相关问题 更多 >