如果有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+]
-/
,u0002
char或+
[/{3,}]
-/
,{
,3
,,
或}
可以使用
s.gsub(//{3,}/, '//')
查看Ruby在线演示