javascript - 正则表达式,从字符串中提取坐标

标签 javascript regex

JavaScript, 我想使用正则表达式从字符串中提取坐标。 这是我的字符串,包括空格和换行符,

          127.518037,37.834511
          127.518037,37.834511
          127.518103,37.834808
          127.518103,37.834808
          127.518169,37.835209
          127.518169,37.835209
          127.518147,37.835558
          127.518147,37.835558
          127.518059,37.835750
          127.518059,37.835750
          127.518081,37.835976
          127.518081,37.835976
          127.518411,37.836412
          127.518411,37.836412
          127.518697,37.836761
          127.518697,37.836761
          127.518719,37.837198
          127.518719,37.837198
          127.518741,37.837669
          127.518741,37.837669
          127.518477,37.838087
          127.518477,37.838087
          127.518433,37.838401
          127.518433,37.838401

我已经这样尝试过,但结果不是我想要的。

var coords = item.split(/\s/);
for( item in coords){
    coords_list = item.split(/,/);
}

坐标列表结果,

["127.518037,37.834511", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "127.518037,37.834511", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "127.518103,37.834808", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "127.518103,37.834808", "", "", "", "", "", "", "", "", "", "", "", "", "", "", 
...

有什么想法,帮忙~

最佳答案

尝试拆分:

/[\s,]+/

字符类[\s,]匹配任何空白字符或逗号,+告诉它匹配所述类一次或多次。这样,您的分割数组中就不会出现空字符串。

或者分两步进行,但首先在 \s+ 上分割,而不是单个 \s:

以下内容:

var text = 
"         127.518037,37.834511\n" + 
"          127.518037,37.834511\n" + 
"          127.518103,37.834808\n" + 
"          127.518103,37.834808\n" + 
"          127.518169,37.835209\n" + 
"          127.518169,37.835209\n" + 
"          127.518147,37.835558\n" + 
"          127.518147,37.835558\n" + 
"          127.518059,37.835750\n" + 
"          127.518059,37.835750\n" + 
"          127.518081,37.835976\n" + 
"          127.518081,37.835976\n" + 
"          127.518411,37.836412\n" + 
"          127.518411,37.836412\n" + 
"          127.518697,37.836761\n" + 
"          127.518697,37.836761\n" + 
"          127.518719,37.837198\n" + 
"          127.518719,37.837198\n" + 
"          127.518741,37.837669\n" + 
"          127.518741,37.837669\n" + 
"          127.518477,37.838087\n" + 
"          127.518477,37.838087\n" + 
"          127.518433,37.838401\n" + 
"          127.518433,37.838401";

var coords = text.split(/\s+/);
for(item in coords){
  var coords_list = coords[item].split(/,/);
  print(coords_list);
}

将打印:

127.518037,37.834511
127.518037,37.834511
127.518103,37.834808
127.518103,37.834808
127.518169,37.835209
127.518169,37.835209
127.518147,37.835558
127.518147,37.835558
127.518059,37.835750
127.518059,37.835750
127.518081,37.835976
127.518081,37.835976
127.518411,37.836412
127.518411,37.836412
127.518697,37.836761
127.518697,37.836761
127.518719,37.837198
127.518719,37.837198
127.518741,37.837669
127.518741,37.837669
127.518477,37.838087
127.518477,37.838087
127.518433,37.838401
127.518433,37.838401

可以在 IDEone 上进行测试.

关于javascript - 正则表达式,从字符串中提取坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5049738/

相关文章:

javascript - 如果满足某些条件,则从 JavaScript 数组中删除重复的对象

javascript - 关于JavaScript对象属性名的一个问题

PHP - 将 Youtube URL 转换为嵌入 URL

regex - .*(点星)如何工作?

javascript - 在 JavaScript/p5.js 中将单行字符串拆分为多行字符串

javascript - 试图将 javascript 注入(inject)我的页面

javascript - 最快的 JavaScript 页面搜索

javascript - 如何检查是否在 Javascript 中单击了一个单词

javascript - 提取两个标记之间的子字符串。第二个 token 可能丢失

python - 如何在Python中将正则表达式匹配到某个字符,如果不匹配则返回None?