-2

如果我有这样的字符串: [3 Series] 315,我如何解析它以使用 Ruby 中的正则表达式从中生成子字符串 series="3 series" 和 model="315" ?这是正确的方法吗:

"[3 Series] 315".split /[|\]\s/

系列可以是一个字符串或只是一个数字

4

3 回答 3

6
_, series, model = "[3 Series] 315".scan(/(\d+\s\w+|\d+)/)

或者

_, series, model = "[3 Series] 315".split /\[|\]\s/

series
# => "3 Series"
model
# => "315"
于 2013-08-26T09:36:03.460 回答
4
re = '\[(\w \w*)\] (\d*)'
str = "[3 Series] 315"
_, series, model = str.match(re).to_a
=> ["[3 Series] 315", "3 Series", "315"]

series
=> 3 Series

model
=> 315
于 2013-08-26T09:36:36.757 回答
3

另一种方法

> result, series, model = /\[(.+)\] (.+)/.match(str).to_a.flatten

> series
# => "3 series"

> model
# => "315"
于 2013-08-26T09:49:22.170 回答