需要一个可以删除数字并跟随点

时间:2015-11-23 02:21:23

标签: ruby regex string

我有一些字符串来自这样的列表:

  1. 丑陋的圣诞节毛衣
  2. 悬滑板
  3. 电晕啤酒保温器 ...
  4. 核动力热袜
  5. 例如,“2. Hoverboard”在应用魔法正则表达式之后将成为“Hoverboard”。

    字符串中的数字正常。我想删除一些后跟“。”的数字。例如

    21 Jump Street

    完全没问题。

2 个答案:

答案 0 :(得分:3)

尝试/^\s*\d+\.\s/

"1. This is a string".sub(/^\s*\d+\.\s/, '') #=> "This is a string"
"1 Is a string".sub(/^\s*\d+\.\s/, '') #=> "1 Is a string"
"1. 3.5".sub(/^\s*\d+\.\s/, '') #=> "3.5"
"Number: 3.5".sub(/^\s*\d+\.\s/, '') #=> "Number: 3.5"

它的作用:

  • ^:字符串的开头
  • \s*:空白(\s),0或更多(*
  • \d+:任意数字(\d),1个或更多(+
  • \..字符
  • \s:任何空白

答案 1 :(得分:1)

@Avinash Raj在问题部分的评论继续这样做。 略微修改并稍微解释一下。

str = '2. Hoverboard'
str.sub(/\s*\d+\.\s*/, '')
# => "Hoverboard"

\s*表示零个或多个空格字符,\d+表示后跟一个或多个数字,后跟.,然后再次\s*表示零个或多个空格字符。

然后,我们使用String#sub方法用第二个参数替换第一次出现的正则表达式。