我希望它能捕获像somedomain.com/folder/path这样的东西,而不是像domain.sub.other.com这样的东西。到目前为止,我的正则表达式几乎完成了,它只是没有筛选出多域urls:
^(.*)://(?!(.{2,3})\.(.*)(.{2,3})(.*)有没有办法筛选出多个期间?
发布于 2012-05-22 00:10:53
你想要的不是.{2,3},而是这样:[^.]{2,3} -它从那个特定的匹配中排除句点(不需要转义,因为它在正则表达式中在上下文中没有特殊意义)。总的来说,你会有类似这样的东西:
://[^.]+\.[^.]{2,3}(/.*)?除非很明显你这样做会错过像*.info这样的东西……
发布于 2012-05-24 04:05:24
在给定各种测试场景的情况下,找到了一个工作正常的解决方案:
^(.*)://([^.]+)\.([^(\?|/|\r|\n|\.)]+)((/|\?|$)+)(.*)$在这里,倒数第二个组与可能的正斜杠、问号或字符串结尾进行匹配,与它之前的组一起工作,这不允许包含‘’的匹配。
所以最后的效果是,它只匹配包含两部分域名的URL,例如'domain.com‘,并且对字符串长度没有任何限制。
https://stackoverflow.com/questions/10688708
复制相似问题