Python程序检查字符串中的URL

Python程序检查字符串中的URL

本文将教您如何确定字符串是否包含URL。在Python中,字符串是表示Unicode字符的字节集合。您可以使用单引号或双引号,它们括起来的所有内容都被视为字符串。给定一个字符串,我们将首先确定它是否包含URL。如果找到了URL,我们将打印出来。

使用findall()方法

我们将使用Python的正则表达式概念来解决这个问题。正则表达式由Python re包支持。正则表达式是一系列特殊字符序列,通过定义在模式中的特定语法,有助于匹配或查找其他字符串或字符串集合。

findall()方法返回列表中的每个字符串都表示找到的不同匹配项。此方法从左到右扫描字符串,以匹配项找到的顺序返回匹配项。

算法

下面的算法演示了如何使用findall()方法检查字符串中是否有URL −

  • re模块导入

  • 创建一个查找URL的函数。

  • 在函数中创建一个正则表达式,其中存储了可以存在于URL中的每个字符。

  • 声明第二个变量,用于存储符合URL模式的每个字符串。

  • 一次性打印列表中的所有字符串。

  • 声明一个带字符的字符串。

  • 将字符串作为参数传递到函数中后,打印函数返回的值。

示例

在此程序中,我们使用了re模块的一个函数,该函数将搜索指定模式的提供字符串。为了使用该函数,我们必须在程序中导入re模块。如果该字符串不包含任何URL,则程序将显示一个空列表。

import re
def checkURL(str):
# findall()函数与定义的可以存在于字符串中的条件一起使用,可以用于在字符串中查找URL
# regex函数可以存储所有字符,包括字母数字、特殊符号和字符等8. Python程序检查字符串中的URL

   regex='http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\), ]|(?:%[0-9a-fA-F][0-9a-fA-F]))+'
   URL=re.findall(regex,str) 
   return URL 
# 主程序
m="https://www.tutorialspoint.com/python-program-to-check-for-url-in-a-string" 
print("URL是:",checkURL(m))

输出

以下是上述代码的输出 −

URL是:['https://www.tutorialspoint.com/python-program-to-check-for-url-in-a-string']

示例

在下面的Python代码中,我们创建了一个用于URL的正则表达式,以验证输入字符串中的URL,并使用内置方法findall()检查输入字符串中的URL模式。结果在从左到右扫描字符串后返回 −

import re
def checkURL(str):
# findall()函数与定义的可以存在于字符串中的条件一起使用,可以用于在字符串中查找URL
   regex='http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\), ]|(?:%[0-9a-fA-F][0-9a-fA-F]))+'
   checkURL=re.findall(regex,str)
   if checkURL:
      return "字符串中的URL是:",checkURL
   else:
      return "未发现URL"
# 主程序
m=input("提供字符串:")
print(checkURL(m))

输出

以下是两种输出情况 −

情况1

当url模式未正确提供时,上述代码的输出如下所示 −

提供字符串:Providing this like url
URL是:未发现URL

情况2

以下是正确提供URL时的输出-

提供字符串:https://www.tutorialspoint.com/python-program-to-check-for-url-in-a-string
('url in the string is:', ['https://www.tutorialspoint.com/python-program-to-check-for-url-in-a-string'])

使用search()方法

在Python中,正则表达式搜索通常表示为:match = re.search (path, string)。re.search()方法使用正则表达式模式和字符串在字符串中查找正则表达式模式。如果搜索成功,则返回匹配对象或没有。

例子

以下代码使用re模块的search()方法,将所需的结果作为URL返回-

import re
#找到在字符串中与网址格式相匹配的条件
string = "https://www.tutorialspoint.com/python-program-to-check-for-url-in-a-string"
regex= 'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\), ]|(?:%[0-9a-fA-F][0-9a-fA-F]))+'
result = re.search(regex,string).group()
print("URL是:", result)

输出

以下是上述代码的输出-

URL是: https://www.tutorialspoint.com/python-program-to-check-for-url-in-a-string

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程