如何在 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: ''
,这可能会起作用。
其他可能适用于此处的表达式是:
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 组(从 href
到 url: '
)和第 2 组(href 内容)中值的串联。
我需要复制 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: ''
,这可能会起作用。
其他可能适用于此处的表达式是:
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: '
- 文字子串。
[^']*
- '
.替换是第 1 组(从 href
到 url: '
)和第 2 组(href 内容)中值的串联。