GSUB 替换 3 个或更多重复字符
GSUB replace 3 or more repeating characters
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(/[\/+]/, "//")
vehicles = vehicles.gsub(/[\/{3,}]/,"//")
当您将整个模式括在方括号中时,您使其匹配单个字符。
您的正则表达式表示:
[\/\1{3,}]
- 单个字符,/
、\
、1
、{
、3
、,
或 }
[\/+]
- /
、\u0002
字符或 +
[\/{3,}]
- /
、{
、3
、,
或 }
你可以使用
s.gsub(/\/{3,}/, '//')
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(/[\/+]/, "//")
vehicles = vehicles.gsub(/[\/{3,}]/,"//")
当您将整个模式括在方括号中时,您使其匹配单个字符。
您的正则表达式表示:
[\/\1{3,}]
- 单个字符,/
、\
、1
、{
、3
、,
或}
[\/+]
-/
、\u0002
字符或+
[\/{3,}]
-/
、{
、3
、,
或}
你可以使用
s.gsub(/\/{3,}/, '//')