Python regex行在regex101中工作,但抛出一个;组名称中的错误字符“0”;代码内(If子句内)

Python regex行在regex101中工作,但抛出一个;组名称中的错误字符“0”;代码内(If子句内),python,regex,regex-group,Python,Regex,Regex Group,我试图解析游戏中的战斗日志。我检查“(关键)”的解决方案导致了一些问题 前瞻条件似乎是捕获数据的唯一方法,即使“关键”不存在。这在regex101中起作用 var=re.compile((?P\d{2}):(?P\d{2}):(?P\d{2}):(?P\d{3})(\[战利品]获得(?P\S+)XP?\[战利品]获得物品:(?P.*)[战利品]获得(?P\S+)战利品获得(?P\S+)荣誉(?)=[战斗](?P+)受到(?P\S+)的伤害((?)+)(?) 关于错误:组名中的错误字符?=。位于

我试图解析游戏中的战斗日志。我检查“(关键)”的解决方案导致了一些问题

前瞻条件似乎是捕获数据的唯一方法,即使“关键”不存在。这在regex101中起作用

var=re.compile((?P\d{2}):(?P\d{2}):(?P\d{2}):(?P\d{3})(\[战利品]获得(?P\S+)XP?\[战利品]获得物品:(?P.*)[战利品]获得(?P\S+)战利品获得(?P\S+)荣誉(?)=[战斗](?P+)受到(?P\S+)的伤害((?)+)(?)
关于错误:组名中的错误字符
?=。
位于位置303

最后一部分:
(?(?=)(?p\(Critical\)|))”

样本数据:
如果您查看regex101上的regex,当切换到python方言时,它显示了一个模式错误
不完整的组结构
,就在您得到错误的地方

python方言中出现错误的正则表达式:

您可能想要一个不匹配的组,它需要一个缺少的

编辑:我重新阅读了你的问题,我注意到你可能只想将行与临界值匹配。这是用于此的正则表达式

固定正则表达式:


除此之外,当使用一个组和
“19:59:16:547”可以更轻松地完成同一件事时,您真的需要将每个(时间?)数字单独分组吗

如果您查看regex101上的regex,当切换到python方言时,它会显示一个模式错误
不完整的组结构
就在您得到错误的地方

python方言中出现错误的正则表达式:

您可能想要一个不匹配的组,它需要一个缺少的

编辑:我重新阅读了你的问题,我注意到你可能只想将行与临界值匹配。这是用于此的正则表达式

固定正则表达式:


除此之外,当使用一个组和
“19:59:16:547”可以更轻松地完成相同的事情时,您真的需要将每个(时间?)数字单独分组吗?拆分(“:”
->->
[“19”,“59”,“16”“547”]

,请确保选中了左侧栏中的“Python”" flavor@Zero是的,我帮你修好了。如果您在regex101上尝试了一些东西,那么为什么不通过提供链接来分享您的尝试呢?最好是向我们展示,而不是让我们猜测你把事情搞砸了。JETM是正确的,我不想使用“Python”风格。因此,我的正则表达式在左边的列中不正确,请确保您已经检查了“Python”flavor@Zero是的,我帮你修好了。如果您在regex101上尝试了一些东西,那么为什么不通过提供链接来分享您的尝试呢?最好是向我们展示,而不是让我们猜测你把事情搞砸了。JETM是正确的,我不想使用“Python”风格。所以我的正则表达式是不正确的你第一次是正确的。我想抓住所有的线,同时也看看哪种攻击是暴击还是非暴击。最好的情况是,它在crit组中返回布尔True而不是“(Critical)”,但我可以在代码中轻松做到这一点。@Zero抱歉,这不是很清楚。如果要匹配组的一次或零次出现,请使用?是的,你第一次是对的。我想抓住所有的线,同时也看看哪种攻击是暴击还是非暴击。最好的情况是,它在crit组中返回布尔True而不是“(Critical)”,但我可以在代码中轻松做到这一点。@Zero抱歉,这不是很清楚。如果要匹配组的一次或零次出现,请使用?是这样的。
19:59:16:394 [Combat] player1 took 4301 damage from Stafrusher(47)

19:59:16:547 [Combat] Stafrage(45) took 12049 damage from player2

19:59:17:060 [Combat] Stafrage(45) took 8621 damage from player3 (Critical)

19:59:17:375 [Combat] Stafrage(45) took 7931 damage from player2 (Critical)