跳过结束时间的网址正则表达式

时间:2019-04-19 23:33:28

标签: regex

我正在尝试创建一个与常规文本中的url字符串匹配的正则表达式。我有这个:

http[s]?://[^\s]+

这似乎工作得很好,不同之处在于,如果url在句子的末尾,它也会抓住句点。例如,此字符串:

我正在输入一些带有URL http://something.com/something-?args=someargs的文本。这是另一句话。

它匹配:

http://something.com/some-thing?args=someargs

我希望它与之匹配:

http://something.com/some-thing?args=someargs

很明显,我不能排除句点,因为它们以前在URL中,但是我不知道如何告诉它排除最后一个句点(如果有的话)。对于行尾或空格,我可能会使用否定的超前查询,但如果它位于行的中间(在其后没有句号),则会忽略url的最后一个字符。

我在网上看到的大多数问题都存在相同的问题,即它们与结尾的点匹配,所以也许不可能吗?我知道基本的正则表达式,但肯定不是天才,所以如果有人有解决方案,我将非常感激:)。

此外,在这种情况下,如果需要,我可以做一些后处理以删除点,似乎应该有一个正则表达式解决方案...

1 个答案:

答案 0 :(得分:2)

试试这个 http[s]?://[^\s]+[^. ]