0

我的正则表达式:

(?<=span class="ope">)[a-z0-9]+?\.(pl|com|net\.pl|tk|org|org\.pl|eu)|$(?=<\/span>)$

目前,只有在文本的开头找到字符串时它才会匹配,当它在中间时,它会失败。

例如。

Something example.com- 失败

example.com Something- 成功(example.com找到)。

这个有什么解决办法吗?

4

3 回答 3

1
(?<=span class="ope">).*?([a-zA-Z0-9]*\.(pl|com|net\.pl|tk|org|org\.pl|eu)).*(?=<\/span>)

测试:http ://www.regex101.com/r/wK0aA2

如果你使用它,你将不得不拉出第 1 组而不是第 0 组。

于 2012-12-30T14:36:50.300 回答
1

这是一个经过测试的解决方案:

(?<=span class="ope">).*?(?P<domain>\w+\.(?:pl|com|net\.pl|tk|org|org\.pl|eu)).*?(?=<\/span>)

它返回domain您想要的域的密钥。在这里试试:http ://www.regex101.com/r/mK1fP0

两人背后的问题。第二个必须是前瞻。我还插入了.*?两次以匹配域中的一些内容。

于 2012-12-30T14:45:08.477 回答
0

试试这个

(?<=span class="ope">)[a-zA-Z0-9\s]*[a-z0-9]+?\.(pl|com|net\.pl|tk|org|org\.pl|eu)|$(?=<\/span>)$
于 2012-12-30T13:01:10.913 回答