【问题标题】:Regex for finding all href and src and replace them with fully quilifies urls用于查找所有 href 和 src 并用完全 quilizes url 替换它们的正则表达式
【发布时间】:2012-07-11 10:25:59
【问题描述】:

我需要在一个字符串中找到所有 src 和 href 并将它们替换为完全 quilifies url。

例如: src="/test/style.css?somethinghere" 变成 src="http://www.mydomain.com/test/style.css?somethinghere"

href 也是如此。

我将在网络中继服务器中使用它们。

我将使用正则表达式替换,但是正则表达式是什么样的?

【问题讨论】:

    标签: regex


    【解决方案1】:

    您缺少重要信息,例如:您对哪种类型的正则表达式感兴趣。我假设您指的是与 perl 兼容的正则表达式。

    无论如何,这将有助于指导、理论和回答,如果您让我知道使用的引擎/语言,我可能会帮助调整它以满足您的需求。

    我使用类似的东西来收集、预处理、过滤和转发来自不同地方的相关新闻提要。 MSDN 有这个相对 URI 的问题,这是我的配置:

    'msdn' => {
                 'action' => [
                             {
                               'tag' => 'get_url_as_content'
                             },
    ...
    ...
                             {
                               'regex' => 's/<img( [^\\/>]*)src="\\//<img$1src="http:\\/\\/blogs.msdn.com\\//gsi',
                               'tag' => 'mod_content'
                             },
                             {
                               'regex' => 's/<a( [^\\/>]*)href="\\//<a$1href="http:\\/\\/blogs.msdn.com\\//gsi',
                               'tag' => 'mod_content'
                             }
    ...
    ...
                           ]
               },
    

    在这里你可以看到我正在使用的两个正则表达式。

    这个恢复img和src单词之间的内容,然后使URLs绝对。

    s/<img( [^\/>]*)src="\//<img$1src="http:\/\/blogs.msdn.com\//gsi
    

    同样适用于锚标签...

    s/<a( [^\/>]*)href="\//<a$1href="http:\/\/blogs.msdn.com\//gsi
    

    这些已经工作了很长一段时间,超过 3 年没有问题:-)

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 1970-01-01
      相关资源
      最近更新 更多