【问题标题】:visual studio code regular expression match after word单词后的Visual Studio代码正则表达式匹配
【发布时间】:2021-07-02 00:13:05
【问题描述】:

所以 Visual Studio 代码说它使用了 .net 正则表达式的一部分。我想匹配这部分的名字。

<a href="anyconnect-all-packages-4.10.00093-k9.zip">anyconnect-all-packages-4.10.00093-k9.zip</a>

anyconnect-all-packages-4.10.00093-k9.zip

(href=")(.*/a) 这匹配它但是当我尝试将它放入像 \1 这样的捕获组时它不起作用。

我正在考虑使用捕获组,我可以提取名称 anyconnect-all-packages-4.10.00093-k9.zip 的第二次或第一次出现。并且只在每一行提取它。

但是,我对使用哪个正则表达式感到困惑。以下是视觉工作室正则表达式指南的链接 https://docs.microsoft.com/en-us/visualstudio/ide/using-regular-expressions-in-visual-studio?view=vs-2019

【问题讨论】:

  • 您的模式不仅匹配名称,而且确实有 2 个捕获组。对于捕获组值,您可以使用$1,但在这种情况下,组不会第二次出现anyconnect-all-packages-4.10.00093-k9.zip,它是第二个捕获组的值。见regex101.com/r/aTulwf/1
  • 您的链接指向 Visual Studio,而不是 Visual Studio Code
  • 请尝试并更清楚地了解您要做什么。例如,您是否要在 VS Code 的 Find-Replace 对话框的 Replace 字段中引用捕获组?
  • 如果你只想匹配'name',你可以使用例如(?&lt;= href=")[^"]+

标签: regex visual-studio-code


【解决方案1】:

试试这个正则表达式:

href="([^"]*)"&gt;(\1)

regex101 demo

第 1 组有 href="&lt;captured in group 1&gt;"
如果第 2 组与第 1 组匹配,则第 2 组具有 innerText。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多