GSUB替换3个或更多的重复字符



如果有ruby中的gsub正则表达式帮助,将不胜感激。我需要替换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,}]/,"//")

当你将整个模式括在方括号内时,你使它匹配单个字符。

你的regexp的意思是:

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

可以使用

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

查看Ruby在线演示

相关内容

  • 没有找到相关文章

最新更新