匹配不以字符串开头的数字

2024-04-19 20:25:21 发布

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

我正在使用pythonregex分析一些非常大的日志文件。 我需要替换日志文件中的每个数字,除了前面有“java:”的数字(日志文件是由java程序生成的)。在

这意味着如果我们有一句话:

This is a bogus test line with limit=300 doing 53 rounds and the error is in (Abc.java:417) and some more

数字300和53应该被替换,而不是417。在

我以行为基础进行过滤,应该注意并不是所有的行都包含java:[number]。在

我得到的最接近的是((?<!java:)[0-9]+)


Tags: and文件test程序iswithline数字
1条回答
网友
1楼 · 发布于 2024-04-19 20:25:21

可能是怎么回事

((?<!java:)[0-9]+)

当然,在这一点上的比赛

^{pr2}$

失败了,但在这一点上

java:4
      ^

成功,因为实际上,ava:4不是{}。在

你只需要再增加一个负面的观察

((?<!java:)(?<![0-9])[0-9]+)
           ^^^^^^^^^^

所以只考虑“完整”的数字。在

相关问题 更多 >