Notepad++ 中的 RegEx 删除或替换文本范围
RegEx in Notepad++ To Remove or Replace Range of Text
我刚刚浏览了 RegEx 对其他伙伴问题的回答,但在我的案例中找不到任何解决方案。
我还阅读了这里的一些帮助者提供的正则表达式参考,但我无法正确理解。
我正在编辑我的网站站点地图。在站点地图中,我有一些 link 的形式:
http://foo.com/download/something-after-download-different-for-each-link-12-23-2014.html?id=my5sIUosfiQ&itag=18
我想将所有这些 link 简单地更改为:
http://foo.com/download/?id=my5sIUosfiQ&itag=18
此处,?id=
和 itag=
值对于每个 link 都是不同的。因此,不应针对已经提到的每个 link 更改这些内容。
此外,每个 link 的 something-after-download-different-for-each-link-12-23-2014.html
部分也不同,因为每个文件的下载方式都不同。所以,我想基本上从每个 link 中删除这部分。我该怎么做?
你应该找到
http://foo\.com/download/[^?]*\?id=(.*)
并将其替换为
http://foo\.com/download/\?
这会抓取 ...download/
和 ?id=...
之间的所有内容并将其删除。
一些可能有用的东西 -
(请注意,发现错误的几率 /download/
未遵循
by 非空格也不是问号,然后是问号,
使这几乎不可能匹配 url 的 )
以外的任何东西
如果 np++ 使用 \K
结构你可以使用这个
查找:/download/\K[^\s?]+(?=\?)
替换:无
如果没有,你可以使用这个
查找:(?<=/download/)[^\s?]+(?=\?)
替换:无
或者,甚至更好
查找:(/download/)[^\s?]+(?=\?)
替换:
启用正则表达式并使用此搜索和替换:
查找:
(http://foo.com/download/)(.*)(\?id=my5sIUosfiQ&itag=18)
替换为:
我刚刚浏览了 RegEx 对其他伙伴问题的回答,但在我的案例中找不到任何解决方案。 我还阅读了这里的一些帮助者提供的正则表达式参考,但我无法正确理解。
我正在编辑我的网站站点地图。在站点地图中,我有一些 link 的形式:
http://foo.com/download/something-after-download-different-for-each-link-12-23-2014.html?id=my5sIUosfiQ&itag=18
我想将所有这些 link 简单地更改为:
http://foo.com/download/?id=my5sIUosfiQ&itag=18
此处,?id=
和 itag=
值对于每个 link 都是不同的。因此,不应针对已经提到的每个 link 更改这些内容。
此外,每个 link 的 something-after-download-different-for-each-link-12-23-2014.html
部分也不同,因为每个文件的下载方式都不同。所以,我想基本上从每个 link 中删除这部分。我该怎么做?
你应该找到
http://foo\.com/download/[^?]*\?id=(.*)
并将其替换为
http://foo\.com/download/\?
这会抓取 ...download/
和 ?id=...
之间的所有内容并将其删除。
一些可能有用的东西 -
(请注意,发现错误的几率 /download/
未遵循
by 非空格也不是问号,然后是问号,
使这几乎不可能匹配 url 的 )
如果 np++ 使用 \K
结构你可以使用这个
查找:/download/\K[^\s?]+(?=\?)
替换:无
如果没有,你可以使用这个
查找:(?<=/download/)[^\s?]+(?=\?)
替换:无
或者,甚至更好
查找:(/download/)[^\s?]+(?=\?)
替换:
启用正则表达式并使用此搜索和替换:
查找:
(http://foo.com/download/)(.*)(\?id=my5sIUosfiQ&itag=18)
替换为: