如何为此 javascript 字符串编写正则表达式
How to write regex for this javascript string
下面这个字符串怎么写
"(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(',');
其中 test 包含要格式化的数据。但是错了
您应该使用 split
的功能来拆分正则表达式,然后 将它们保留在结果中 。为此,只需在正则表达式中放置一个捕获组。在您的情况下,您将 "split" 双引号中的内容:
pieces = test.split(/(".*?")/)
^^^^^^^ CAPTURE GROUP
// ["", ""(22.0796251, 82.13914120000004),36"", ", ", ""(22.744108, 77.73696700000005),48"", ""]
问号是为了确保它不会吃掉输入中最后一个引号之前的所有字符。它使 *
量词 "non-greedy".
现在去掉垃圾(空字符串和 ", "
):
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
,进一步拆分它的元素,或者用它做任何你想做的事。
下面这个字符串怎么写
"(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(',');
其中 test 包含要格式化的数据。但是错了
您应该使用 split
的功能来拆分正则表达式,然后 将它们保留在结果中 。为此,只需在正则表达式中放置一个捕获组。在您的情况下,您将 "split" 双引号中的内容:
pieces = test.split(/(".*?")/)
^^^^^^^ CAPTURE GROUP
// ["", ""(22.0796251, 82.13914120000004),36"", ", ", ""(22.744108, 77.73696700000005),48"", ""]
问号是为了确保它不会吃掉输入中最后一个引号之前的所有字符。它使 *
量词 "non-greedy".
现在去掉垃圾(空字符串和 ", "
):
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
,进一步拆分它的元素,或者用它做任何你想做的事。