Python | Suchen Sie in einem String nach URL
Voraussetzung: Mustervergleich mit regulärem Ausdruck
In diesem Artikel müssen wir eine Zeichenfolge akzeptieren und prüfen, ob die Zeichenfolge eine URL enthält. Wenn die URL in der Zeichenfolge vorhanden ist, sagen wir, dass die URL gefunden wurde oder nicht, und drucken die entsprechende URL, die in der Zeichenfolge vorhanden ist. Wir werden das Konzept des regulären Ausdrucks von Python verwenden, um das Problem zu lösen.
Beispiele:
Eingabe: string = 'Mein Profil: https://auth.geeksforgeeks.org/user/Chinmoy%20Lenka/articles im Portal von http://www.geeksforgeeks.org/ ' Ausgabe: URLs: ['https://auth.geeksforgeeks.org/user/Chinmoy%20Lenka/articles', 'http://www.geeksforgeeks.org/'] Eingabe: string = 'Ich bin ein Blogger unter https://geeksforgeeks.org' Ausgabe: URL: ['https://geeksforgeeks.org']
Um die URLs in einer bestimmten Zeichenfolge zu finden, haben wir die Funktion findall() aus dem Modul für reguläre Ausdrücke von Python verwendet . Dies gibt alle nicht überlappenden Übereinstimmungen des Musters in der Zeichenfolge als Liste von Zeichenfolgen zurück. Die Zeichenfolge wird von links nach rechts gescannt, und Übereinstimmungen werden in der angegebenen Reihenfolge zurückgegeben.
import
re
def
Find(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]
string
=
'My Profile: https://auth.geeksforgeeks.org/user/Chinmoy%20Lenka/articles in the portal of http://www.geeksforgeeks.org/'
(
"Urls: "
, Find(string))
Ausgabe:
URLs: ['https://auth.geeksforgeeks.org/user/Chinmoy%20Lenka/articles', 'http://www.geeksforgeeks.org/']