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