Javascript Regex在到达&;时停止检测链接;nbsp;
我试图找到一个正则表达式来检测字符串中的任何链接 当前使用:Javascript Regex在到达&;时停止检测链接;nbsp;,javascript,regex,regex-lookarounds,Javascript,Regex,Regex Lookarounds,我试图找到一个正则表达式来检测字符串中的任何链接 当前使用:/(https?:\/\/[^\s]+)/g 在我看到这种链接之前,这一切都很好: http://campus.inkrement.no/Show/Index/2757798 for å lære mer 我希望它在第一个 因此,它将是: <a href='http://campus.inkrement.no/Show/Index/2757798'>h
/(https?:\/\/[^\s]+)/g
在我看到这种链接之前,这一切都很好:
http://campus.inkrement.no/Show/Index/2757798 for å lære mer
我希望它在第一个
因此,它将是:
<a href='http://campus.inkrement.no/Show/Index/2757798'>http://campus.inkrement.no/Show/Index/2757798</a> for å lære mer
ålære mer的
而不是像这样:
<a href='http://campus.inkrement.no/Show/Index/2757798 for å lære mer'>http://campus.inkrement.no/Show/Index/2757798 for å lære mer</a>
有人知道吗?会不会
/(https?:\/\/[^\s]+?)/g
做这个把戏?请注意,您还匹配了第一个
,因此需要将其添加到替换字符串中。总是有一个结束语吗?我认为你应该在这里使用负前瞻
比如:
/(https?:\/\/(?:(?! )[\S])+)/g
[\S]
将匹配任何非空格
(?!)
仅当前面没有
时
?:
将阻止捕获此组(可选)您只需在表达式中添加几个字符即可获得:
/(https?:\/\/[^\s]+?)(?=)|(https?:\/\/[^\s]+)/g
示例:
http://campus.inkrement.no/Show/Index/2757798 对于ålære mer
输出:
http://campus.inkrement.no/Show/Index/2757798
您可以尝试在第一次匹配后运行第二个regexp,以删除第一次匹配后的所有内容,包括第一次感谢,但这没有帮助:(当它到达最后一个“”时将停止,但我希望它在第一个“nbsp;”处停止。请注意?
在+
之后,使其不情愿(它将尽可能少地匹配)。你试过了吗?@SQB仍然你会向结果中添加
,他不想要它。是的,所以我注意到需要将它添加到替换字符串中。一般来说,人们似乎忘记了,如果你正在替换,你可以匹配任意多的周围字符串,只要你将其自身替换。通常,你不需要(昂贵)环顾四周。很有魅力,谢谢!:D@Adassko是的,你是对的,我刚刚检查过。所以你的是我现在最好的选择。再次感谢:)@Adassko你是对的,用最简单的方法编辑它…现在它工作了,无论如何thx.:)有没有办法使用?
和前瞻一起使用?