擅长:python、mysql、java
<p>您的模式<code>\/(?=\s)</code>要求URL以斜杠结尾。您可以通过在测试代码段中任何URL的末尾添加斜杠来检查这一点</p>
<p>没有真正的理由这样做-您可以删除<code>\/</code>,并允许URL以任何后跟空格的字符结尾</p>
<p><strong>但是</strong>,除此之外,您还应该注意空格的功能不是很强大。如果URL出现在文本中,则后面可能会有标点或括号,标点或括号在技术上是有效的URL字符,您的筛选器(减去<code>\/</code>)将包括这些字符,即使它们可能不是URL的一部分</p>
<p>在这些情况下,显然存在一些歧义,但在URL末尾排除任何标点符号可能是更好的启发</p>
<p>(如果你想变得<em>真的</em>老练,你可以像GitHub的markdown解析器那样,在<em>的末尾加上右括号,只要它们与URL中的左括号匹配。这有助于识别像<code>(See https://en.wikipedia.org/wiki/Something_(disambiguation))</code>这样的上下文中的链接。但仅使用正则表达式是不可行的,需要一些额外的处理。)</p>