正则表达式动态字符串操作

时间:2017-01-16 11:59:36

标签: ruby regex

我的目标是一个正则表达式公式根据一个字符返回一个字符串的块,如果这个字符串包含L1,那么它将只是一个块,如果找到L2,它将返回2个块,L3 = 3个块。 / p>

实施例

让我们假设我们有这个字符串

"L2N1N1"

我们希望获得2个字符串

"L2N1" and "L2N1N1"

另一个例子

"L3N1N1N2"

返回3个字符串

"L3N1" "L3N1N1" "L3N1N1N2"

我正在使用Ruby

1 个答案:

答案 0 :(得分:3)

"L3N1N1N2".sub(/L(\d)(?:N\d)+/) do |m|
  $1.to_i.times.map { |i| m[0..3+2*i] }.join(' ')
end
#⇒ "L3N1 L3N1N1 L3N1N1N2"