【问题标题】:GSUB replace 3 or more repeating charactersGSUB 替换 3 个或更多重复字符
【发布时间】:2021-10-30 19:54:54
【问题描述】:

如果使用 ruby​​ 中的 gsub 正则表达式,我们将不胜感激。我需要用文本字符串中的 2 个正斜杠“//”替换 3 个或更多正斜杠“//////”。但是,应该跳过单斜杠和双斜杠并保持原样。

我的数据看起来像这样jeep/grand cherokee////////hyundai/////harley davidson//bmw,应该转换为jeep/grand cherokee//hyundai//harley davidson//bmw

我没有太多使用 gsub 正则表达式的经验,这是我尝试过的一些事情,但它们要么去掉所有正斜杠,要么添加太多。

  vehicles = vehicles.gsub(/[\/\\1{3,}]/, "")

  vehicles = vehicles.gsub(/[\/\2+]/, "//")

  vehicles = vehicles.gsub(/[\/{3,}]/,"//")

【问题讨论】:

    标签: ruby gsub


    【解决方案1】:

    当您将整个模式括在方括号内时,您可以使其匹配单个字符。

    你的正则表达式意味着:

    • [\/\\1{3,}] - 单个字符、/\1{3,}
    • [\/\2+] - /, \u0002 char 或 +
    • [\/{3,}] - /, {, 3, ,}

    你可以使用

    s.gsub(/\/{3,}/, '//')
    

    请参阅Ruby demo online

    【讨论】:

      猜你喜欢
      • 2012-10-25
      • 2011-10-16
      • 2013-02-21
      • 1970-01-01
      • 1970-01-01
      • 2020-05-07
      • 1970-01-01
      • 2016-03-01
      相关资源
      最近更新 更多