【问题标题】:Ruby - remove pattern from stringRuby - 从字符串中删除模式
【发布时间】:2011-08-03 00:16:43
【问题描述】:

我有一个字符串模式,例如,如下所示:

WBA - Skinny Joe vs. Hefty Hal

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

【问题讨论】:

  • 任何字母和数字的组合都可以放在“-”之前。

标签: ruby regex string


【解决方案1】:

假设“WBA”点是任意字母或数字的序列,后跟空格、破折号和空格:

str = "WBA - Skinny Joe vs. Hefty Hal"
str.sub /^\w+\s-\s/, ''

顺便说一句——RegexPal 是测试此类正则表达式的好工具。

【讨论】:

    【解决方案2】:

    如果您需要更复杂的字符串替换,可以考虑编写更复杂的正则表达式。其他:

    保持简单!如果您只需要从字符串的开头删除"WBA - ",请使用String#sub

    s = "WBA - Skinny Joe vs. Hefty Hal"
    puts s.sub(/^WBA - /, '')
    # => Skinny Joe vs. Hefty Hal
    

    【讨论】:

    • ProTip™:如果您想替换 ALL 次出现,请使用 gsub
    【解决方案3】:

    您还可以使用以下 sn-p 删除模式的第一次出现:

    s[/^WBA - /] = ''
    

    【讨论】:

      猜你喜欢
      • 2014-03-15
      • 1970-01-01
      • 2011-05-10
      • 2021-04-19
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 2012-07-31
      • 1970-01-01
      相关资源
      最近更新 更多