Regex 跳过结束期间的URL正则表达式
我正在尝试创建一个正则表达式,它匹配普通文本中的url字符串。我有这个:Regex 跳过结束期间的URL正则表达式,regex,Regex,我正在尝试创建一个正则表达式,它匹配普通文本中的url字符串。我有这个: http[s]?://[^\s]+ 这似乎很有效,但如果url位于句子的末尾,它也会抓住句点。例如,对于此字符串: 我正在用url键入一些文本。这是另一句话 它匹配: 我希望它能匹配: 显然,我不能排除句点,因为它们以前在url中,但我不知道如何告诉它排除最后一个句点(如果有)。我可以使用一个否定的前瞻来结束行或空格,但是如果它在行的中间(没有一段时间之后),那么它将离开URL的最后一个字符。 我在网上看到的大多数都
http[s]?://[^\s]+
这似乎很有效,但如果url位于句子的末尾,它也会抓住句点。例如,对于此字符串:
我正在用url键入一些文本。这是另一句话
它匹配:
我希望它能匹配:
显然,我不能排除句点,因为它们以前在url中,但我不知道如何告诉它排除最后一个句点(如果有)。我可以使用一个否定的前瞻来结束行或空格,但是如果它在行的中间(没有一段时间之后),那么它将离开URL的最后一个字符。
我在网上看到的大多数都有相同的问题,它们与结束点匹配,所以这可能是不可能的?我知道基本正则表达式,但肯定不是它的天才,所以如果有人有解决方案,我将非常感激:)
另外,如果需要的话,我可以在这种情况下做一些后期处理来删除点,就像应该有一个正则表达式解决方案一样…试试这个
http[s]?://[^\s]+[^.]
必读内容:差不多。你忘了逃过刀口。这似乎管用,谢谢!我确实为多行文本制作了一个小的mod:http[s]?://[^\s]+[^。(\n)]@RobertHarvey有趣的是,我的似乎可以在没有前斜杠转义的情况下工作,但在那个网站上没有,你知道为什么吗?@RobertHarvey:只要更改分隔符就行了。例如,使用#
或~
。