【问题标题】:How can I remove a certain pattern from a string? [duplicate]如何从字符串中删除特定模式? [复制]
【发布时间】:2020-09-16 13:32:01
【问题描述】:

我有像"682_2, 682_3, 682_4" 这样的字符串。 (682是一个随机数)

如何使用 regex 和 ruby​​ 获取此字符串 "2, 3, 4"

【问题讨论】:

    标签: regex ruby


    【解决方案1】:

    一个简单的正则表达式可以是

    /_([0-9]+)$/ 并且在结果的匹配组中,682_2 有 2 个,682_3 有 3 个

    Ruby 代码 sn-p 将是 "64532_2".match(/_([0-9]+)/).captures[0]

    【讨论】:

      【解决方案2】:

      您可以使用scan,它返回一个包含匹配项的数组:

      string_code.scan(/(?<=_)\d/)
      

      (?&lt;=_) 告诉找到一个在其自身之前具有给定模式(在本例中为_)但不会捕获它的模式,它仅捕获\d。如果它可以有超过 1 个数字,例如 682_13,682_33,那么 \d+ 是必要的。

      【讨论】:

        【解决方案3】:

        你可以在 ruby​​ 中做到这一点

        input="682_2, 682_3, 682_4"
        output = input.gsub(/\d+_/,"")
        puts output
        

        【讨论】:

          猜你喜欢
          • 2019-11-11
          • 1970-01-01
          • 2017-03-18
          • 1970-01-01
          • 2015-11-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-04
          相关资源
          最近更新 更多