📜  Python|检查字符串中的 URL

📅  最后修改于: 2022-05-13 01:54:57.729000             🧑  作者: Mango

Python|检查字符串中的 URL

先决条件:使用正则表达式进行模式匹配

在本文中,我们将需要接受一个字符串,并且我们需要检查该字符串中是否包含任何 URL。如果 URL 存在于字符串中,我们将判断 URL 是否已找到并打印字符串中存在的相应 URL。我们将使用Python的正则表达式的概念来解决这个问题。

例子:

Input : string = 'My Profile: 
https://auth.geeksforgeeks.org/user/Chinmoy%20Lenka/articles 
in the portal of https://www.geeksforgeeks.org/'

Output : URLs :  ['https://auth.geeksforgeeks.org/user/Chinmoy%20Lenka/articles',
'https://www.geeksforgeeks.org/']

Input : string = 'I am a blogger at https://geeksforgeeks.org'
Output : URL :  ['https://geeksforgeeks.org']

为了在给定字符串中查找 URL,我们使用了Python正则表达式模块中的 findall()函数。这将返回字符串中所有不重叠的 pattern 匹配项,作为字符串列表。从左到右扫描字符串,并按找到的顺序返回匹配项。

# Python code to find the URL from an input string
# Using the regular expression
import re
  
def Find(string):
  
    # findall() has been used 
    # with valid conditions for urls in string
    regex = r"(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'\".,<>?«»“”‘’]))"
    url = re.findall(regex,string)      
    return [x[0] for x in url]
      
# Driver Code
string = 'My Profile: https://auth.geeksforgeeks.org/user/Chinmoy%20Lenka/articles in the portal of https://www.geeksforgeeks.org/'
print("Urls: ", Find(string))

输出:

Urls:  ['https://auth.geeksforgeeks.org/user/Chinmoy%20Lenka/articles',
'https://www.geeksforgeeks.org/']