【发布时间】:2020-09-16 13:32:01
【问题描述】:
我有像"682_2, 682_3, 682_4" 这样的字符串。 (682是一个随机数)
如何使用 regex 和 ruby 获取此字符串 "2, 3, 4"?
【问题讨论】:
我有像"682_2, 682_3, 682_4" 这样的字符串。 (682是一个随机数)
如何使用 regex 和 ruby 获取此字符串 "2, 3, 4"?
【问题讨论】:
一个简单的正则表达式可以是
/_([0-9]+)$/ 并且在结果的匹配组中,682_2 有 2 个,682_3 有 3 个
Ruby 代码 sn-p 将是 "64532_2".match(/_([0-9]+)/).captures[0]
【讨论】:
您可以使用scan,它返回一个包含匹配项的数组:
string_code.scan(/(?<=_)\d/)
(?<=_) 告诉找到一个在其自身之前具有给定模式(在本例中为_)但不会捕获它的模式,它仅捕获\d。如果它可以有超过 1 个数字,例如 682_13,682_33,那么 \d+ 是必要的。
【讨论】:
你可以在 ruby 中做到这一点
input="682_2, 682_3, 682_4"
output = input.gsub(/\d+_/,"")
puts output
【讨论】: