Ruby - 从字符串中删除模式

29
我有一个字符串模式,例如,看起来像这样:

WBA - Skinny Joe vs. Hefty Hal
我想从字符串中截取模式“WBA -”,并返回只有“Skinny Joe vs. Hefty Hal”。

1
任何字母和数字组合都可以在“-”之前。 - keruilin
3个回答

48
假设“WBA”位置将是任何字母或数字序列,后跟一个空格、破折号和空格:
str = "WBA - Skinny Joe vs. Hefty Hal"
str.sub /^\w+\s-\s/, ''

顺便提一下——RegexPal是一个很好的工具,可以用来测试这些正则表达式。


17
如果您需要更复杂的字符串替换,可以尝试编写更复杂的正则表达式。否则:
保持简单!如果您只需要从字符串开头删除"WBA - ",请使用String#sub。
s = "WBA - Skinny Joe vs. Hefty Hal"
puts s.sub(/^WBA - /, '')
# => Skinny Joe vs. Hefty Hal

专业提示:如果您想替换所有出现的内容,请使用 gsub 函数。 - Joshua Pinter

6
您可以使用以下代码片段删除模式的第一个出现:
s[/^WBA - /] = ''

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接