我只是通过 RegEx 对其他伙伴提出的问题的答案,但在我的案例中无法找到解决问题的方法。 我还阅读了一些助手给出的正则表达式参考文献,但我无法正确理解。
我正在编辑我的网站站点地图。在站点地图中,我在表单中有一些链接:
http://foo.com/download/something-after-download-different-for-each-link-12-23-2014.html?id=my5sIUosfiQ&itag=18
我想简单地将所有这些链接更改为:
http://foo.com/download/?id=my5sIUosfiQ&itag=18
此处,每个链接的?id=
和itag=
值都不同。因此,对于已经提到的每个链接,这些都不应该改变。
另外,每个链接的部分something-after-download-different-for-each-link-12-23-2014.html
也不同,因为每个文件都不同于下载。所以,我想基本上从每个链接中删除此部分。我怎么能这样做?
答案 0 :(得分:1)
可能有用的一些事情 -
(请注意,找不到错误的/download/
的可能性未遵循
通过非空白或问号,然后是问号,
除了网址)
如果np ++使用\K
构造,你可以使用这个
查找:/download/\K[^\s?]+(?=\?)
替换:没有
如果没有,你可以使用这个
查找:(?<=/download/)[^\s?]+(?=\?)
替换:没有
或者,甚至更好的
查找:(/download/)[^\s?]+(?=\?)
替换:$1
答案 1 :(得分:0)
你应该找到
http://foo\.com/download/[^?]*\?id=(.*)
并将其替换为
http://foo\.com/download/\?$1
这会抓取...download/
和?id=...
之间的所有内容并将其删除。
答案 2 :(得分:0)
启用正则表达式并使用此搜索&amp;替换:
查找
(http://foo.com/download/)(.*)(\?id=my5sIUosfiQ&itag=18)
替换为:
\1\3