如何使我的Python替换不贪婪?

2024-10-06 20:28:21 发布

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

我的Python子网太贪婪了,我正在修改一个OFX文件(XML或SGML),它包含在x字符串中。你知道吗

我想删除任何买卖,其中包含一个特定的硬编码CUSIP,而不是影响任何其他。买入以[BUYMF]开始,以下一个[/BUYMF]结束。卖出从[SELLMF]开始,到下一个[/SELLMF]结束。如果其中一个包含123456789,我想从ofx字符串中删除它们。你知道吗

我在字符串中的所有通配符之后添加了问号

(ofx,sub_count)= re.subn( \
   r'<(SELLMF|BUYMF)>.*?<UNIQUEID>\s*?123456789.*?</(SELLMF|BUYMF)>' \
   ,'',ofx,  flags=re.MULTILINE | re.DOTALL)

我原以为只有买卖交易会被删除,但是 一大块事务被删除。你知道吗

在我标记解决方案并进行更正后进行编辑: 所有的批评和评论都是正确的,非常有用。谢谢。你知道吗


Tags: 文件字符串re编码countxml子网ofx
1条回答
网友
1楼 · 发布于 2024-10-06 20:28:21
(ofx,sub_count)= re.subn( \
 r'<(SELLMF|BUYMF)>(?:(?!MF>).)*<UNIQUEID>\s*?123456789(?:(?!MF>).)*</(SELLMF|BUYMF)>' \
   ,'',ofx,  flags=re.MULTILINE | re.DOTALL)

按上述修改的方式工作。我发现我的第一个“解决方案”有缺陷。 也许有更好的解决办法。感谢所有评论的人。你知道吗

相关问题 更多 >