我正在尝试创建一个与常规文本中的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的最后一个字符。
我在网上看到的大多数问题都存在相同的问题,即它们与结尾的点匹配,所以也许不可能吗?我知道基本的正则表达式,但肯定不是天才,所以如果有人有解决方案,我将非常感激:)。
此外,在这种情况下,如果需要,我可以做一些后处理以删除点,似乎应该有一个正则表达式解决方案...
答案 0 :(得分:2)
试试这个
http[s]?://[^\s]+[^. ]