使用正则表达式对数组中的所有数字进行取整
Floor all numbers in an array using regular expression
我有一个 53MB 的文件,其中包含以下形式的大量数组:
[ 730762.36433458142, 7043260.1900061285 ]
数组中总是有两个数字,我想在Notepad++中使用正则表达式替换,所以数组变成了这样的形式:
[ 730762, 7043260 ]
所以从数字中去掉逗号后的数字。
问题是这些数组外面还有逗号,应该保持原样。
有谁知道我可以使用哪个正则表达式?
编辑:
@npinti 提供的解决方案使我的编辑器崩溃。我总是使用一个带有 lookbehind 和 lookahead 的表达式,只找到逗号后面的点和数字,并将其替换为空字符串,但我再也找不到了。
提供的解决方案可能会占用大量内存?我不知道。
您可以这样使用:\[\s+(\d+)\.\d+,\s+(\d+)\.\d+\s+]
并将其替换为 [ , ]
。
鉴于此:
[ 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 ]
您可以使用以下方式进行匹配
\[( \d+)\.\d+,( \d+)\.\d+ \]
并替换为[, ]
我有一个 53MB 的文件,其中包含以下形式的大量数组:
[ 730762.36433458142, 7043260.1900061285 ]
数组中总是有两个数字,我想在Notepad++中使用正则表达式替换,所以数组变成了这样的形式:
[ 730762, 7043260 ]
所以从数字中去掉逗号后的数字。
问题是这些数组外面还有逗号,应该保持原样。
有谁知道我可以使用哪个正则表达式?
编辑: @npinti 提供的解决方案使我的编辑器崩溃。我总是使用一个带有 lookbehind 和 lookahead 的表达式,只找到逗号后面的点和数字,并将其替换为空字符串,但我再也找不到了。
提供的解决方案可能会占用大量内存?我不知道。
您可以这样使用:\[\s+(\d+)\.\d+,\s+(\d+)\.\d+\s+]
并将其替换为 [ , ]
。
鉴于此:
[ 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 ]
您可以使用以下方式进行匹配
\[( \d+)\.\d+,( \d+)\.\d+ \]
并替换为[, ]