0

我有一个包含组织名称及其 URL 的长 HTML 文件。代码中每个组织的“部分”由“组织”一词划分,后跟大量代码,其 URL 位于该代码内,并以“组织”一词结尾。

例如:

组织——大量代码(URL 位于内部某处)——组织

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

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

我怀疑我的问题在于我试图通过使用“组织”一词来划分对 URL 的搜索,但我不确定。

4

2 回答 2

0

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

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

(由于粗体插入,这错误地看起来有空格,但实际上没有。如果选择它并复制/粘贴,它将正确粘贴而没有空格)

于 2012-12-14T18:19:49.000 回答
0

从这里尝试第 1 组:

organization.*\b(\w+://[\w.?%&=@/$,-]+).*?organization
于 2012-12-14T18:14:43.950 回答