在两个字符串regex中查找URL

时间:2012-12-14 17:57:33

标签: regex

我有一个很长的HTML文件,其中包含组织名称及其URL。每个组织的"部分"在代码中划分了单词" organization"接下来是很多代码,其URL位于该代码中,并以" organization"结尾。

例如:

组织 - 许多代码(URL位于某处) - 组织

我曾尝试使用正则表达式来搜索和提取网址,但无济于事。

organization(?<Protocol>\w+):\/\/(?<Domain>[\w@][\w.:@]+)\/?[\w\.?=%&=\ @/$,]*organization

我怀疑我的问题在于我试图通过使用单词&#34; organization&#34;来划分对URL的搜索,但我不确定。

2 个答案:

答案 0 :(得分:0)

从这里尝试第1组:

organization.*\b(\w+://[\w.?%&=@/$,-]+).*?organization

答案 1 :(得分:0)

您当前的正则表达式正在搜索两个“组织”实例之间夹杂的内容。如果“组织”和您的网址之间存在任何字符,则您需要为任何实例(.*?)引入非贪婪匹配,如果混合中有换行符,您将会需要使用(?:.|\n)*?

所以你的正则表达式变成了:
organization (?:.|\n)*? (?<Protocol>\w+):\/\/(?<Domain>[\w@][\w.:@]+)\/?[\w\.?=%&=\ @/$,]* (?:.|\n)*? organization

(由于粗体插入,这个错误的出现有空格,但它没有。如果你选择它并复制/粘贴,它将正确粘贴空格)