【发布时间】:2013-07-25 18:02:41
【问题描述】:
我在大型日志文件中执行大规模更改时遇到问题。 除了导致 Notepad++ 出现问题的文件大小之外,我在使用超过 10 个参数进行替换时遇到问题,最多 9 个可以正常工作。
我需要更改文件中的数值,这些数值位于引号内并带有前导和结束逗号:."123,456,789,012.999",
我用这个exp查找并替换格式为:,123456789012.999,(这样num.value里面就没有引号和逗号)
用来查找的exp是:
([,])(["])([0-9]+)([,])([0-9]+)([,])([0-9]+)([,])([0-9]+)([\.])([0-9]+)(["])([,])
要替换的exp是:
\1\3\5\7\9\10\11\13
问题是参数\11 \13 不起作用(示例中的字符例如.999 不会出现在更改的值中)。
所以现在的问题是 - 参数有限制吗?
在我看来,它不能在 10 以上工作。对于较短的 num.values,我只需要使用最多 9 个参数,用于 serach 和替换的字符串工作正常,对于上面的示例,搜索工作但不是替换,结束更改后的值已损坏。
另外,我想到我可以直接更改 unix 服务器上的日志文件,而不是使用 Notepad++,但是我在构建正确的 perl 语法时遇到了问题。有谁可以帮忙吗?
【问题讨论】:
-
我很困惑。你能用一两句话说明你想做什么吗?
-
将 ."123,456,789,012.999" 更改为:.123456789012.999,但是文件中的所有值都用逗号分隔,因此无法简单地删除逗号...