使用正则表达式在 Visual Studio Code 中查找所有短语以给定短语开头和结尾,并将整个解决方案中的内容重命名为小写

Gol*_*Age 2 regex visual-studio-code

我想找到所有href="" Matches开头和结尾的地方:

<li><a href="Blah/Index.html">Blah</a></li>
<li><a href="/blah/Index.html">Blah</a></li>
<li><a href="../Blah/index.html">Blah</a></li>
<li><a href="../Foo/Index.html">Foo</a></li>
Run Code Online (Sandbox Code Playgroud)

重命名后的预期结果

<li><a href="blah/index.html">Blah</a></li>
<li><a href="/blah/index.html">Blah</a></li>
<li><a href="../blah/index.html">Blah</a></li>
<li><a href="../foo/index.html">Foo</a></li>
Run Code Online (Sandbox Code Playgroud)

我构建的正则表达式不起作用:

^href".*\."$
Run Code Online (Sandbox Code Playgroud)

而且我不知道是否可以使用 VS Code 中的全局搜索将所有找到的出现次数更改为小写?如果不可能,你能给我一些替代方案吗?干杯

Wik*_*żew 5

Visual Studio Code 正则表达式不支持替换模式中的大小写修改运算符。

在 Notepad++ 中,您可以使用类似

查找(href=")([^"]*\.[^".]+)(")
替换$1\L$2\E$3

请参阅此演示

细节

  • (href=")- 第 1 组:href="子串
  • ([^"]*\.[^".]+) - 第 2 组:
    • [^"]* - 0+ 个字符,除了 "
    • \. - 一个点
    • [^".]+- 除了"和之外的 1+ 个字符.
  • (") - 第 3 组:双引号。

$1\L$2\E$3替换模式插入后组1倍的值,则\L操作者告知正则表达式引擎开启lowercasing,$2因此插入下壳体,\E停止小写输出,并且$3增加了组3的值。

如果不需要检查href值是否包含点,则可以将正则表达式简化为(href=")([^"]+)(").