正则表达式找到所有href和src并用完全quilifies url替换它们

时间:2012-07-11 10:25:59

标签: regex

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

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

和href的相同。

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

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

1 个答案:

答案 0 :(得分:0)

您缺少重要信息,例如:您感兴趣的正则表达式的类型。我假设您指的是与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单词之间的内容,然后使URL绝对。

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

类似于锚标签......

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

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

希望这有帮助。