2015-06-20 31 views
-3

如何寫下面如何寫正則表達式這個JavaScript字符串

"(22.0796251, 82.13914120000004),36", "(22.744108, 77.73696700000005),48",...and so on 

像這個字符串:

(22.0796251, 82.13914120000004) 36 

    (22.744108, 77.73696700000005)  48 
    ...and so on..................  .. 

如何做到這一點使用正則表達式中javscript?

我的嘗試是這樣的:

substring = test.split(','); 

其中測試包含的數據進行格式化。但是它的錯誤

回答

2

您應該使用split在正則表達式上拆分的能力,然後將它們保留在結果中。要做到這一點,只需在正則表達式中放置一個捕獲組。在你的情況,你會的東西在雙引號「分裂」:

pieces = test.split(/(".*?")/) 
        ^^^^^^^ CAPTURE GROUP 

// ["", ""(22.0796251, 82.13914120000004),36"", ", ", ""(22.744108, 77.73696700000005),48"", ""] 

問號是,以確保它不會通過輸入最後一個引號吃光了所有的字符,直到。它使*量詞「非貪婪」。

現在擺脫垃圾(空字符串和", ")的:

pieces = pieces . filter (function(seg) { return !/^[, ]*$/.test(seg); }) 

// ["(22.0796251, 82.13914120000004),36", "(22.744108, 77.73696700000005),48"] 

接下來,你可以打破每一塊與另一個正則表達式,如

arrays = pieces . map(function(piece) { return piece.match(/(.*), (.*)/).slice(1); }); 

// [["(22.0796251, 82.13914120000004)", "36"], ["(22.744108, 87.73696700000005)", "48"]] 

slice是擺脫數組的第一個元素返回match,這是整個匹配,我們不需要這個。

現在打印出arrays,進一步拆分其元素,或做任何你想要的東西。

相關問題