Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 跳过结束期间的URL正则表达式_Regex - Fatal编程技术网

Regex 跳过结束期间的URL正则表达式

Regex 跳过结束期间的URL正则表达式,regex,Regex,我正在尝试创建一个正则表达式,它匹配普通文本中的url字符串。我有这个: http[s]?://[^\s]+ 这似乎很有效,但如果url位于句子的末尾,它也会抓住句点。例如,对于此字符串: 我正在用url键入一些文本。这是另一句话 它匹配: 我希望它能匹配: 显然,我不能排除句点,因为它们以前在url中,但我不知道如何告诉它排除最后一个句点(如果有)。我可以使用一个否定的前瞻来结束行或空格,但是如果它在行的中间(没有一段时间之后),那么它将离开URL的最后一个字符。 我在网上看到的大多数都

我正在尝试创建一个正则表达式,它匹配普通文本中的url字符串。我有这个:

http[s]?://[^\s]+
这似乎很有效,但如果url位于句子的末尾,它也会抓住句点。例如,对于此字符串:

我正在用url键入一些文本。这是另一句话

它匹配:

我希望它能匹配:

显然,我不能排除句点,因为它们以前在url中,但我不知道如何告诉它排除最后一个句点(如果有)。我可以使用一个否定的前瞻来结束行或空格,但是如果它在行的中间(没有一段时间之后),那么它将离开URL的最后一个字符。

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

另外,如果需要的话,我可以在这种情况下做一些后期处理来删除点,就像应该有一个正则表达式解决方案一样…

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

必读内容:差不多。你忘了逃过刀口。这似乎管用,谢谢!我确实为多行文本制作了一个小的mod:http[s]?://[^\s]+[^。(\n)]@RobertHarvey有趣的是,我的似乎可以在没有前斜杠转义的情况下工作,但在那个网站上没有,你知道为什么吗?@RobertHarvey:只要更改分隔符就行了。例如,使用
#
~