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/']