用于lat和long数组的正则表达式

时间:2012-04-16 03:15:23

标签: regex ruby-on-rails-3

我需要从一个字符串中提取lat和long,这些字符串可以是以下两种格式:

[-1.23,1.23]
(-1.23,1.23)

现在这就是我正在做的事情,但只适用于[] no():

Location.new(coordinates: [string.gsub(/\[|,(.*)\]/,'').to_f, string.gsub(/\[(.*),\s|\]/,'').to_f])

我需要长订单,因为我使用的是mongodb。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用以下正则表达式/([\[\(])([^,]*),(.*?)([\]\)])/

我在节点上测试过:

> var re = /([\[\(])([^,]*),(.*?)([\]\)])/;
> var s  = "[-1.23,1.23]";
> var t  = "(-1.23,1.23)";
> s.match(re)
[ '[-1.23,1.23]',
  '[',
  '-1.23',
  '1.23',
  ']',
  index: 0,
  input: '[-1.23,1.23]' ]
> t.match(re)
[ '(-1.23,1.23)',
  '(',
  '-1.23',
  '1.23',
  ')',
  index: 0,
  input: '(-1.23,1.23)' ]