2017-04-20 91 views
-2

我正在从事一个项目,我收到一些不完全如何我想要的数据,并且在使用之前必须对其进行编辑。它有以下格式:复杂的字符串替换

"((123.456 456.321 789.123, 1122.1 2211.2 7515) (12.1212 4567.01 111.111, 123.123 456.456 789.789, 7515 71315.125 0))" 

有没有办法从每个逗号分隔的集合中快速删除第三个数字?这些数据是以字符串形式出现的,所以我猜想某种复杂的RegEx魔法可以选择并删除它?

编辑:

对不起,我忘了把我的期望输出!它应该是这样的:

"((123.456 456.321, 1122.1 2211.2) (12.1212 4567.01, 123.123 456.456, 7515 71315.125))" 
+0

请仔细阅读[如何提问](HTTP: //什么类型的问题,我应该避免问?](http://stackoverflow.com/help/dont-ask)和提供[MCVE:最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。如果身边的人可以很容易地阅读和理解你的意思,或者是什么问题,他们会更愿意帮助:) – Dwhitz

+0

“第三个数字”你的意思是:789.123,或者你的意思是(像在第三个括号内的集):7515 71315.125 0。像你期待的输出为: “((123.456 456.321,1122.1 2211.2)(12.1212 4567.01,123.123 456.456,7515 71315.125))” 或 “( (123.456 456.321 789.123,1122.1 2211.2 7515)(12.1212 4567.01 111.111,123.123 456.456 789.789))“。 另外,如你所说,输入是一个字符串。输出是字符串吗? –

+0

这是什么样的数据?你如何解析/使用它?难道你不能忽视那个地方的第三个价值吗? – Thomas

回答

0

我想你可以使用类似:

my_string = "((123.456 456.321 789.123, 1122.1 2211.2 7515) (12.1212 4567.01 111.111, 123.123 456.456 789.789, 7515 71315.125 0))"; 
 
result = my_string.replace(/\(([^,]+),([^,]+),([^,]+)\)/g, "($1,$2)"); 
 
console.log(result);

0

my_string = "((123.456 456.321 789.123, 1122.1 2211.2 7515) (12.1212 4567.01 111.111, 123.123 456.456 789.789, 7515 71315.125 0))"; 
 
result = my_string.replace(/((?:[0-9]+)(?:\.[0-9]+)? (?:[0-9]+)(?:\.[0-9]+)?) ([0-9]+)(\.[0-9]+)?/g, "$1"); 
 
console.log(result);