在字符串中提取子字符串

时间:2012-09-25 16:38:09

标签: ruby-on-rails

我有以下字符串:

expression_patterns_attributes_2_location_attributes_PTN_PATTERN

我需要在'expression_patterns_attributes _'

之后只提取数字

我做了以下事情:

<%= string_a = "expression_patterns_attributes_2_location_attributes_PTN_PATTERN"
<% z_index1 = string_a.slice! "expression_patterns_attributes_" %>
<% z_index2 = string_a.slice! "_location_attributes_PTN_PATTERN"     %>
<%= string_a %> yields '2'

是否有更简洁的方法从字符串中提取数字?

感谢您的建议

2 个答案:

答案 0 :(得分:2)

s = 'expression_patterns_attributes_2_location_attributes_PTN_PATTERN'
s[/\d+/] # => "2"

答案 1 :(得分:1)

如果你确定string_a总是格式良好:

string_a.split("_")[3]