Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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 从文本行中获取数字_Ruby - Fatal编程技术网

Ruby 从文本行中获取数字

Ruby 从文本行中获取数字,ruby,Ruby,我想解析一个文本文件,其中 我得到括号之间的数字,比如 这: 我正在考虑对每一行使用split,比如line.split(“(”),但这并不能完全起作用。我想知道这项工作是否有更复杂的东西 感谢您的帮助 Ted我会考虑使用Substring/IndexOf以及split之类的东西 您也可以尝试使用正则表达式来查找()之间用空格分隔的数字,但正则表达式可能有点麻烦。Hmm刚刚发现了这个问题 我得到了我需要的表情 ((\d+)-(\d+)data=你能澄清为什么array1和array2有这些特定的

我想解析一个文本文件,其中 我得到括号之间的数字,比如 这:

我正在考虑对每一行使用split,比如line.split(“(”),但这并不能完全起作用。我想知道这项工作是否有更复杂的东西

感谢您的帮助


Ted

我会考虑使用Substring/IndexOf以及split之类的东西

您也可以尝试使用正则表达式来查找()之间用空格分隔的数字,但正则表达式可能有点麻烦。

Hmm刚刚发现了这个问题

我得到了我需要的表情
((\d+)-(\d+)

data=你能澄清为什么array1和array2有这些特定的值吗?为什么array1不是[4,7,8,10]或者仅仅是[4,7]?你能提供你使用的完整代码,而不仅仅是说
line.split(“(”)
?@Pam:这是OP应该指定的,但4、7、8是每个括号中的第一个数字,7、8、10是每个括号中的第二个数字。我会使用
放置a1。检查
PA1
,而不是
放置a1
(即使OP使用了这个)。嘿,我只是按照规范操作而已!:)
1 2 3 (4 - 7) 8 9
1 3 8 (7 - 8) 2 1
1 2 (8 - 10) 3 2

should return an array for each:

array1:
4
7
8

array2:
7
8
10
data = <<EOS
1 2 3 (4 - 7) 8 9
1 3 8 (7 - 8) 2 1
1 2 (8 - 10) 3 2
EOS
lines = data.split("\n")

def get_inner(lines)
  lines.map { |line| line.partition("(")[2].partition(")")[0].split(" - ")}
end

a1, a2 = *[get_inner(lines).map {|a| a.first },get_inner(lines).map {|a| a.last }]
puts a1
puts a2

# => 
4
7
8
7
8
10