Regex Notepad ++:如何删除除url之外的所有内容?

时间:2014-12-15 14:34:51

标签: regex url notepad++ sitemap

我有这样的网站地图:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
    <loc>http://mywebsite.com/article1</loc>
    <lastmod>2014-08-10</lastmod>
    <changefreq>monthly</changefreq>
  </url>
  <url>
    <loc>http://mywebsite.com/article2</loc>
    <lastmod>2014-08-10</lastmod>
    <changefreq>monthly</changefreq>
  </url>
  <url>
    <loc>http://mywebsite.com/article3</loc>
    <lastmod>2014-08-10</lastmod>
    <changefreq>monthly</changefreq>
  </url>
</urlset>

我只想保留里面的网址。你知道如何匹配其他人并取而代之吗?非常感谢你!

3 个答案:

答案 0 :(得分:1)

如果您想要的结果如下:

http://mywebsite.com/article1
http://mywebsite.com/article2
http://mywebsite.com/article3

搜索:

\h*<url\b.*?(http[^<]+).*?</url>|<.*?>\s*

并替换为捕获的URL(在第一个带括号的组中捕获)

\1

\h匹配任何horzintal空间,[^<]+匹配一个或多个不是<

的字符

请务必选中. matches \r and \n

复选框

另见example and explanation on regex101.com

答案 1 :(得分:0)

您似乎打算匹配内部元素。多行正则表达式匹配内容可以完成这项工作:(http。*)

答案 2 :(得分:0)

您可以使用此正则表达式匹配除URL之外的所有内容,并替换为任何内容:

.*<url>.*\n?.*<loc>|<\/loc>(.*\n?){4}<\/url>