我的正则表达式:
(?<=span class="ope">)[a-z0-9]+?\.(pl|com|net\.pl|tk|org|org\.pl|eu)|$(?=<\/span>)$
目前,只有在文本开头找到字符串才会匹配,当它在中间时,它会失败。
例如
Something example.com
- 失败
example.com Something
- 成功(找到example.com
)。
这个有解决方案吗?
答案 0 :(得分: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组。
答案 1 :(得分:1)
这是经过测试的解决方案:
(?<=span class="ope">).*?(?P<domain>\w+\.(?:pl|com|net\.pl|tk|org|org\.pl|eu)).*?(?=<\/span>)
它返回您想要的域domain
键。在这里试试:http://www.regex101.com/r/mK1fP0
两个人看不见的问题。第二个必须是先行。我还插入了一些.*?
两次来匹配域名周围的东西。
答案 2 :(得分:0)
试试这个
(?<=span class="ope">)[a-zA-Z0-9\s]*[a-z0-9]+?\.(pl|com|net\.pl|tk|org|org\.pl|eu)|$(?=<\/span>)$