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