我想用以下格式之一替换数字: 200, 200.99, 300,555 除非它位于<;>;标记之间。 例如,我想跳过这个: <;200>
这就是我想到的:
(?<!<)([\d,|.]+(?:\.\d{2})?)(?!>)
在regex101中进行测试时,我只跳过<;和>;之前的第一个和最后一个数字;。你知道吗
我正在逐行遍历文本文件,并希望替换以下示例的所有出现:
200
200.00
200.000
如果行中已有一个介于<;gt;之间的数字,请跳过该行,为了澄清,我想跳过行中的以下值,而不是用regex替换:
<300>
这是我使用的代码:
current_line = re.sub("(?<!<)([\d,|.]+(?:\.\d{2})?)(?!>)", ' <num> ', current_line)
你能帮忙吗?你知道吗
这并不是对您的需求的精确解决方案,但是如果您将消极的lookarounds更改为积极的lookarounds,它断言数字的两边都被空格或起始/结束锚点包围,那么您似乎得到了您想要的行为:
Demo
(由Wiktor提供)这样做的一个限制是,它不会与
<234
这样的术语匹配,因为数字不会被两边的空格/锚点包围。但是,该模式确实正确地排除了标记中包围的数字。你知道吗相关问题 更多 >
编程相关推荐