2013-08-21 2 views
-1

Je suis en train de prendre une ligne de texte comme suit:Ruby: Utilisation de Split et regex

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

et isoler le premier numéro et les deux flotteurs.

Je joue avec un créateur RegEx et est venu avec les éléments suivants: Pour obtenir le premier entier: (\\d+) Pour obtenir les flotteurs: ([+-]?\\d*\\.\\d+)(?![-+0-9\\.])

Mais quand je les utilise avec .split Je reçois "syntax error, unexpected $undefined, expecting ')'"

Un aperçu serait génial!

+2

Montrez votre code source actuel. – jaeheung

+0

Des réponses utiles ont été fournies ci-dessous, mais je suis vraiment curieux de savoir ce qui a causé cette erreur. Je n'ai jamais vu ruby ​​se plaindre de '$ undefined' avant. – Shelvacu

Répondre

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] sont vos valeurs souhaitées, j'espère.

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