Wie Sie einen URL mithilfe von regulären Ausdrücken anzeigen

November 12

Wie Sie einen URL mithilfe von regulären Ausdrücken anzeigen

Reguläre Ausdrücke bieten den Programmierer mit leistungsstarken Tools für Textanalyse und Manipulation. Von e-Commerce-Formularvalidierung High Stakes Rechtsstreitigkeiten überall gefunden--wo Anwälte nach Kombinationen von Wörtern in e-Mail-Nachrichten suchen, die sich zu "schuldig"--RegExen gehören in jedem programmer's Toolbox. Leider steht ihre arkanen Syntax als Barriere für viele Benutzer, die davon profitieren könnten. Eine mögliche Verwendung ist einen Text für Universal Resource Locator, umgangssprachlich bekannt als Web-Adressen scannen. Die Programmiersprache Python wird diese Aufgabe in wenigen Codezeilen erreicht.

Anweisungen

1 Öffnen Sie im Leerlauf und erstellen Sie eine Text-Datei durch Kopieren und Einfügen zufälligen Text in die Datei zusammen mit einige URLs zu. Speichern Sie die Datei TestText.txt in das Verzeichnis, das kommt in der Dialog-Box, damit Sie nicht zu kümmern, Pfade zwischen den Python-Interpreter und diese Datei.

2 Gehen Sie zum Hauptfenster im Leerlauf und geben

wieder importieren

die Python-Prompt. Dies lädt die Python-Modul für reguläre Ausdrücke.

3 Lesen Sie Ihre Test-Text in Python und halten Sie es im Speicher mit den folgenden Befehlen:

TestText = open('OCB_1.txt')

Roh = TestText.read()

OCB_1.txt ist der Name meiner Test-Datei--eine kopieren und Einfügen von Ambrose Bierces "ein Vorkommen at Owl Creek Bridge," mit ein paar URLs eingefügt. In der oben genannten Befehle die Textdatei geöffnet und die Variable TestText zugewiesen; dann ist es mit den rohen zugewiesene Variable in den Speicher gelesen.

4 Vorkompilieren des regulären Ausdrucks um die Analyse zu beschleunigen. Dies ist besonders nützlich beim Umgang mit großen Textdateien. Geben Sie die folgenden Befehle an der Eingabeaufforderung Python:

Pattobj = re.compile ('Https? :/ /([-\w.] +)+(:\d+)? (/([\w/_.] *(\?\S+)?)?)?')

5 Rufen Sie die Findall-Methode, durch Eingabe des entsprechenden Regex-Befehls zusammen mit der Variablen unter Bezugnahme auf den Text im Speicher:

Findallobj = pattobj.findall(raw)

Dies erstellt eine neue Variable Findallobj, die gebeugt, indem Sie die Regex Muster enthält.

6 Zeigen Sie die URL der Regex gefunden mit der print-Befehl an:

Print(findallobj)

Die Ausgabe sieht etwa so aus:

[('www.sjca.edu'), ('www.cantlers.com/index.shtml')]

Tipps & Warnungen

  • Speichern Sie diese Schritte als ein Python Skript mit dem Namen find_url.py. Sie können ausführen es wieder einfach durch ändern den Namen der Textdatei, die Sie suchen möchten.
  • Die Regex, die URLs, übereinstimmt ('Https? :/ /([-\w\.] +)+(:\d+)? (/([\w/_\.] * (\?\S+)?)?)? "), einsetzbar in Perl, JavaScript, VB und viele andere Programmierung und scripting-Tools mit geringfügigen Anpassungen.