【问题标题】:Regex based search and replace in vscodevscode中基于正则表达式的搜索和替换
【发布时间】:2020-08-14 18:59:49
【问题描述】:

在 VSCode 中:我想做一个通配符替换:

rgb(1, 1, 1 ,1)

与:

rgba(1, 1,1 ,1)

基本上当指定 alpha 值时,数据类型应从“rgb”更改为“rgba”。 如果没有指定 alpha,例如 rgb(1,1,1) - 它们应该保持不变。

我试过了:

查找:rgb(.*,.*,.*,.*) 替换:rgba($1)

这显然不起作用。实现此目的的正确正则表达式语法是什么?谢谢。

更新:请注意,某些位置的逗号前后有空格。不一致。

【问题讨论】:

  • 有效的 RGB 值是 0-9a-f 还是什么?
  • 有效的 RGBA 值是 0 到 255。谢谢
  • 也许rgb\((\d+,\d+,d+,\d+)\) 在这种情况下会这样做。 (这比0-255 宽松一点,但如果可行,您可以将\d 更改为一个范围(例如stackoverflow.com/questions/31684083/…))
  • 松散就好。但这对我不起作用。 VSCode 搜索无法识别具有该模式的任何文本(我知道它应该具有)。谢谢。
  • 使用查找框中的.* 按钮激活正则表达式搜索

标签: regex visual-studio-code


【解决方案1】:

要匹配数字周围的任意数量的空格:

Search: rgb(?=\((\s*\d+\s*,){3}\s*\d+\s*\))
Replace: rgba 

【讨论】:

    【解决方案2】:
    Search: rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)
    Replace: rgba($1, $2, $3, $4)
    

    这将匹配任意数量的空格,并在替换后修复它们。

    【讨论】:

      猜你喜欢
      • 2019-11-03
      • 2015-02-16
      • 1970-01-01
      • 2013-06-14
      • 2016-09-26
      • 1970-01-01
      • 2018-05-25
      • 2010-11-25
      相关资源
      最近更新 更多