2013-08-21 94 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"]