Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
哪些字符可以';t作为url的最后一个字符出现?_Url_Input Sanitization - Fatal编程技术网

哪些字符可以';t作为url的最后一个字符出现?

哪些字符可以';t作为url的最后一个字符出现?,url,input-sanitization,Url,Input Sanitization,我试图从Python中的文本中获取所有url链接。假设这是文本: Go to google.com, and then follow the instructions. 我可以使用string.split()然后逐个检查每个单词。但是,它将返回google.com,(注意逗号)。我可以用另一个函数去掉逗号,但是如果它是goole.com呢或google.com.或诸如此类。从理论上讲,我们是否可以拥有一个有效的url,如www.website.com?知道这个字符不可能是url的一部分,我可以

我试图从Python中的文本中获取所有url链接。假设这是文本:

Go to google.com, and then follow the instructions.

我可以使用
string.split()
然后逐个检查每个单词。但是,它将返回
google.com,
(注意逗号)。我可以用另一个函数去掉逗号,但是如果它是
goole.com呢
google.com.
或诸如此类。从理论上讲,我们是否可以拥有一个有效的url,如
www.website.com?
知道这个字符不可能是url的一部分,我可以安全地从一个单词的末尾删除哪些字符?

对此没有正确的答案

正如您所指出的,URL可以以
结尾。它也可以以未转义的
结尾

  • 是一个无保留字符,因此不需要对其进行
    %
    转义
  • 其他的是保留的,但是(我认为)它们都可以使用,而无需在有效URL的末尾转义。。。在某些情况下。(以及在不严格符合规范的URL中。)
然而,尽管这些结局都是可能的,但它们都不太可能;i、 e.设计web服务/网站的人通常不会发出URL

因此,您的答案将取决于您如何从何处获取这些URL,以及您打算如何处理它们。你的剥离必然是基于一个启发式的(有用的)。。。因此,调整您的启发式方法,为您的应用程序提供最佳结果


您的
google.com
示例由于另一个原因存在问题。它根本不是一个真正的URL,因为它没有协议。作为一个URI,它甚至没有什么意义。。。因为相对于任何绝对URI,
google.com
不太可能解析。它实际上是一个DNS名称


现在DNS名称通常有相应的URL(例如,
google.com
对应于
http://google.com
https://www.google.com
和一些其他URL),但不一定如此。而且,如果您试图解析正确推断的URL和实际无法工作的URL,则无法可靠地区分它们。(即使尝试连接到URL,也不会总是给出正确的答案。)

如果某个字符可以出现在试用URL段中,它可以作为最后一个字符出现<代码>google.com无效,但是,
http://foo/when?(应该)。到此结束
。。不管怎么说,有太多的正则表达式可以提取URL;在这里,string.split对于任何类型的泛化都是不够的。