2012-12-14 62 views
0

我有一个很长的HTML文件,其中包含组织及其URL的名称。代码中的每个组织的“部分”都由“组织”一词加上许多代码进行划分,其URL位于该代码内部,并以“组织”一词结尾。查找两个字符串内的URL正则表达式

例如:

组织 - 大量的代码(用URL位于某处内) - 组织

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

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

我怀疑我的问题在于我试图通过只使用单词“组织”划定为URL的搜索某个地方,但我不知道。

+0

'organization。*?'... r如果你可以让'.'也匹配换行符,否则它可能是'organization(。| \ s)*?'等等。 – Wrikken

+2

10你可以给我们看一个* actual *的例子?我们可以测试我们的解决方案吗? – ghoti

回答

0

您当前的正则表达式是在寻找的东西“组织”的两个实例之间夹马上。如果在“组织”和你的网址之间存在任何字符的机会,你需要为任何事情引入一个非贪婪的匹配(.*?),如果组合中有换行符,则需要使用(?:.|\n)*?

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

(因为大胆插入的,这个错误出现有空格,但它不一样,如果你选择。它并复制/粘贴,它将正确粘贴,不用空格)

+0

谢谢。我试过了,但我得到了以下结果: – DCL

+0

好吧,正如ghoti在评论中指出的那样,我们没有办法进行测试,因为您没有提供任何示例。在这一点上,我们所能做的就是在黑暗中进行刺探。 – joequincy

相关问题