使用正则表达式将所有数字放在数组中

时间:2015-04-27 10:49:36

标签: regex preg-replace notepad++

我有一个53MB的文件,其中包含以下形式的大量数组:

[ 730762.36433458142, 7043260.1900061285 ]

数组中总有两个数字,我想在Notepad ++中使用正则表达式替换,因此数组变为以下形式:

[ 730762, 7043260 ]

所以从数字中删除逗号之后的数字。

问题是这些数组之外还有逗号数字,这些数字应保持不变。

有谁知道我可以使用哪个正则表达式?

编辑: @npinti提供的解决方案使我的编辑器崩溃。我总是使用一个带有lookbehind和lookahead的表达式,只能在逗号​​后面找到点和数字,并用空字符串替换它,但我再也找不到了。

可能是提供的解决方案需要多少内存?我不知道。

2 个答案:

答案 0 :(得分:2)

您可以使用以下内容:\[\s+(\d+)\.\d+,\s+(\d+)\.\d+\s+]并将其替换为[ \1, \2 ]

鉴于此:

[ 730762.36433458142, 7043260.1900061285 ]
[ 123.36433458142, 456.1900061285 ]
[ 456.36433458142, 789.1900061285 ]
123.123,123.456
456.789,456.1010
[ 789.36433458142, 987.1900061285 ]
[ 987.36433458142, 654.1900061285 ]

产量

[ 730762, 7043260 ]
[ 123, 456 ]
[ 456, 789 ]
123.123,123.456
456.789,456.1010
[ 789, 987 ]
[ 987, 654 ]

答案 1 :(得分:2)

您可以使用以下内容匹配

\[( \d+)\.\d+,( \d+)\.\d+ \]

并替换为[\1,\2 ]