2013-08-21 45 views
-1

我试图采取一行文字如下:红宝石:采用分体式和正则表达式

1 | Company 1234 Anywhere St, SJ (12.34567, -98.765432) 

和隔离的第一个数字和两个浮标。

我一直在玩一个正则表达式的创造者,并提出了以下几点: 为了得到第一个整数:(\\d+) 要获取浮动:([+-]?\\d*\\.\\d+)(?![-+0-9\\.])

但是当我使用这些与.split我越来越"syntax error, unexpected $undefined, expecting ')'"

任何洞察力都会很棒!

+2

显示您的实际源代码。 – jaeheung

+0

下面提供了有用的答案,但我对引起错误的原因非常好奇。我从来没有见过ruby抱怨'$ undefined'之前。 – Shelvacu

回答

0
input = '1 | Company 1234 Anywhere St, SJ (12.34567, -98.765432)' 
regexp = /^\s*(\d+)\s*\|.*\(([+-]?\d*\.\d+),\s*([+-]?\d*\.\d+)/ 
md = input.match(regexp) 

md [1],md [2],md [3]是你想要的值,我希望。

0
"1 | Company 1234 Anywhere St, SJ (12.34567, -98.765432)" 
.sub(/.*\|/, "") 
.scan(/-?[\d.]+/) 
# => ["1234", "12.34567", "-98.765432"]