我写了这个正则表达式来帮助我从一些文本文件中提取一些链接:https?:\/\/(?:.(?!https?:\/\/))+$因为我使用的是 golang/regexp lib,由于我的否定,我无法使用它 (?!..我想用它做的是选择从最后一次出现 http/https 到最后的所有文本。sometextsometexhttp://websites.com/path/subpath/#query1sometexthttp://websites.com/path/subpath/#query2=> 输出:http : //websites.com/path/subpath/#query2任何人都可以帮助我解决方案,我花了几个小时尝试不同的方法来重现相同的结果,但没有成功。
2 回答
不负相思意
TA贡献1777条经验 获得超10个赞
前瞻的存在是有原因的。
但是,如果您坚持使用所谓的等效替代方案,则可以使用的一般策略是:
(?!xyz)
有点等价于:
$|[^x]|x(?:[^y]|$)|xy(?:[^z]|$)
话虽如此,希望我没有犯任何错误:
https?:\/\/(?:$|(?:[^h]|$)|(?:h(?:[^t]|$))|(?:ht(?:[^t]|$))|(?:htt(?:[^p]|$))|(?:http(?:[^s:]|$))|(?:https?(?:[^:]|$))|(?:https?:(?:[^\/]|$))|(?:https?:\/(?:[^\/]|$)))*$
- 2 回答
- 0 关注
- 142 浏览
添加回答
举报
0/150
提交
取消