2017-04-20 87 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);