我有一些字符串来自这样的列表:
例如,“2. Hoverboard”在应用魔法正则表达式之后将成为“Hoverboard”。
字符串中的数字正常。我想删除一些后跟“。”的数字。例如
21 Jump Street
完全没问题。
答案 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方法用第二个参数替换第一次出现的正则表达式。