【发布时间】:2019-02-09 09:37:41
【问题描述】:
我想用以下格式之一替换数字: 200, 200.99, 300,555 除非它在 标记之间。 例如我想跳过这个:
这是我想出的:
(?<!<)([\d,|.]+(?:\.\d{2})?)(?!>)
通过在 regex101 中对其进行测试,我只跳过 之前的第一个和最后一个数字。
我正在逐行迭代文本文件,我想替换所有出现的以下示例:
200
200.00
200.000
带有一个标记,但如果该行在 之间已经有一个数字,则跳过该行,澄清一下,我想在我的行中跳过以下值,而不是用正则表达式替换:
<300>
这是我使用的代码:
current_line = re.sub("(?<!<)([\d,|.]+(?:\.\d{2})?)(?!>)", ' <num> ', current_line)
您能帮忙吗?
【问题讨论】:
-
能否添加一些示例数据?
-
你想用
Text here, then <234 and more here替换234吗? -
题目中的例子我写了,我再澄清一下。
-
您的正则表达式的问题,例如使用输入
<200>,可以通过仅匹配中间的0来满足负环视,左右看两边的数字。 -
那么,只有
<>里面有数字不应该被替换?或者与\d(?:[.,\d]*\d)?模式对应的任何数字?
标签: python regex regex-negation