繁体   English   中英

Ruby Regex代码字符串

[英]Ruby Regex Code String

我有以下逻辑

def insert_type(type_list, user_input)
  case user_input
  when user_input == 'library_1'
    type_list.slice!('library_' + RegEx for any digit after library_ and stop right there + '__')
    type_list << user_input << '__'
  when user_input == 'class_A_2'
    type_list.slice!('class_' + RegEx for any digit after class_ and stop right there + _A + '__')
    type_list << user_input << '__'
  end
end

我尝试执行以下操作

[l][i][b][r][a][r][y][_]\d{0,5} #digit from 0 to 99999

它确实可以工作,但是应该有一个更常规的方法,我可以从l开始,以下划线结束,然后添加数字,因为type_list可以是:

puts type_list
=> "username_John__userid_58173__userpass_8adsh20__class_A_2__library_0__"

您想要的是:

\w+?(\d{1,5})

或者,如果您想要一个特定的单词,则:

library_(\d{1,5})

它将非贪婪地捕获单词字符,然后将数值添加到第一个捕获组。

解释:

  • 在找到数字之前,任何单词字符(包括_)都是非贪婪的
  • 1到5位之间的任何数字(此处使用{0,5}实际上是0到5位数字)
  • 将数字括在括号()中可以捕获该值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM