Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby:使用split和regex_Ruby_Regex_Split - Fatal编程技术网

Ruby:使用split和regex

Ruby:使用split和regex,ruby,regex,split,Ruby,Regex,Split,我试着把一行文字理解如下: 1 | Company 1234 Anywhere St, SJ (12.34567, -98.765432) 并分离出第一个数字和两个浮点数 我一直在和一个正则表达式的创建者一起玩,并得出以下结论: 要获取第一个整数:(\\d+) 要获取浮动:([+-]?\\d*\\\.\\d+(![-+0-9\\.]) 但是当我将它们与.split一起使用时,我得到的是“语法错误,意外$undefined,预期'” 任何洞察都会很棒 input = '1 | Company 1

我试着把一行文字理解如下:

1 | Company 1234 Anywhere St, SJ (12.34567, -98.765432)
并分离出第一个数字和两个浮点数

我一直在和一个正则表达式的创建者一起玩,并得出以下结论: 要获取第一个整数:
(\\d+)
要获取浮动:
([+-]?\\d*\\\.\\d+(![-+0-9\\.])

但是当我将它们与.split一起使用时,我得到的是
“语法错误,意外$undefined,预期'”

任何洞察都会很棒

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]是您想要的值。

显示您的实际源代码。下面提供了有用的答案,但我对导致该错误的原因非常好奇。我以前从未见过ruby抱怨
$undefined
"1 | Company 1234 Anywhere St, SJ (12.34567, -98.765432)"
.sub(/.*\|/, "")
.scan(/-?[\d.]+/)
# => ["1234", "12.34567", "-98.765432"]