如何在 Sublime Text 3 中使用正则表达式修改多个文件中的链接

How to modify links in multiple files with regex in Sublime Text 3

我需要复制 500 多个 HTML 文件中特定标签的 URL,其中 URL 是随机的,并将其放入另一个但保留所有代码。即复制href标签引号内的link,在另一个标签中重复

例如我想改变这个:

href="PODCAST_32_LINK" 
url: 'RANDOM_PODCAST_LINK'

至:

href="PODCAST_32_LINK"
url: 'PODCAST_32_LINK'

我可以使用查找函数使用正则表达式 [\S\s]*? 捕获 link,但我不确定我可以在替换字段中输入什么。

我试过了:

Find: href="[\S\s]*?"
Replace: url:''

但是,当然,这会破坏代码,将第一个替换为第二个。

根据你设计的表达式,如果我理解问题,你可能只想要一个捕获组,

href="([\s\S]*?)"

并将其替换为 url: '',这可能会起作用。

Please see the demo here

其他可能适用于此处的表达式是:

href="([^"]+)"
href="([^"]+?)"
href="(.*)"
href="(.*?)"
href="(.+)"
href="(.+?)"

全部被替换为:

url: ''

您可以使用

查找内容(?s)(href="([^"]+)".*?url: ')[^']*
替换为</code></p> <p>见<a href="https://regex101.com/r/Bi5whX/1/" rel="nofollow noreferrer">regex demo</a></p> <p><strong>详情</strong></p> <ul> <li><code>(?s) - . 现在匹配任何字符,包括换行字符

  • (href="([^"]+)".*?url: ') - 第 1 组:
    • href=" - 文字子串
    • ([^"]+) - 第 2 组:"
    • 以外的 1+ 个字符
    • " - 一个 " 字符
    • .*? - 任何 0+ 个字符,尽可能少
    • url: ' - 文字子串。
  • [^']* - '.
  • 以外的 0 个或更多字符

    替换是第 1 组(从 hrefurl: ')和第 2 组(href 内容)中值的串联。