0

次の 2 つの形式のいずれかの文字列から緯度と経度を抽出する必要があります。

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

今、これは私がやっていることですが、[] no () でのみ動作します:

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

私はmongodbを使用しているので、長い、遅い順序が必要です。

ありがとう。

4

1 に答える 1

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)' ]
于 2012-04-16T03:33:51.977 に答える