如何解决IronPython Compile()问题?

2024-10-01 17:29:25 发布

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

我尝试在我的C#/IronPython中运行以下命令:

import re
Message = re.sub(r"^EVN\|A\d+", "EVN|A08", Message, flags=MULTILINE)

在命令提示符下,这在真正的python上工作得很好。但是,一旦我将它放入IronPython中,就会出现一个错误:

^{pr2}$

研究让我明白了(对还是错?)多行标志在IronPython中触发Compile()。然后我发现这篇文章是关于它在IronPython中缺乏支持的:https://ironpython.codeplex.com/workitem/22692。在

删除flags=MULTILINE可修复错误。但是,它不再匹配"^EVN"。在

编辑:如果我使用flags=re.MULTILINE我会收到以下错误:

ERROR Error while processing the message. Message: sub() got an unexpected keyword argument 'flags'. Microsoft.Scripting.ArgumentTypeException: sub() got an unexpected keyword argument 'flags'

结束编辑

我的问题是:如何解决这个问题,并且在给定上述代码片段的命令行中仍然得到与在命令行中得到的结果相同的结果,但是在IronPython中呢?在

我很少使用Python,更不用说IronPython了,所以请原谅我,因为我不确定我的替代品。在


Tags: 命令行命令rean编辑message错误argument
1条回答
网友
1楼 · 发布于 2024-10-01 17:29:25

IronPython可能不支持^{}中的flags关键字参数。要解决这个问题,可以先编译正则表达式。如果您计划多次使用表达式,则建议使用此方法;并且模块级函数也会执行此操作。在

为此,请使用^{}。这些标志可以作为第二个参数传递:

regex = re.compile('^EVN\|A\d+', re.MULTILINE)

这为您提供了一个正则表达式对象,您可以直接使用它的^{}方法来执行替换:

^{pr2}$

相关问题 更多 >

    热门问题