So verwenden Sie reguläre Python-Ausdrücke für Codierung und Codierungseffizienz

PHPz
Freigeben: 2023-06-22 22:52:39
Original
1570 Leute haben es durchsucht

Anfänger stoßen beim Schreiben von Python-Code häufig auf einige Probleme bei der Zeichenfolgenverarbeitung, z. B. beim Parsen von Daten aus einer HTML-Webseite, beim Extrahieren bestimmter Informationen aus einer Textdatei oder beim Abfangen wichtiger Teile aus einem langen Text usw. Zu diesem Zeitpunkt können wir reguläre Ausdrücke verwenden, um diese Probleme zu lösen. In diesem Artikel wird erläutert, wie Sie mit den regulären Ausdrücken von Python Code schreiben und die Codierungseffizienz verbessern.

1. Was ist ein regulärer Ausdruck?

Regulärer Ausdruck ist eine Methode zum Abgleichen von Zeichenfolgen. Sie verwendet spezielle Symbole und Zeichen, um Regeln zu bilden, was das Filtern und Durchsuchen von Text sehr erleichtert. Das in Python häufig verwendete Modul für reguläre Ausdrücke ist das Re-Modul, mit dem regelmäßige Vergleichs- und Ersetzungsvorgänge für Zeichenfolgen implementiert werden können.

2. Grundlegende Syntax regulärer Ausdrücke

Bevor wir reguläre Ausdrücke verwenden, müssen wir einige grundlegende Syntax beherrschen.

Zeichensatz: [ ] entspricht jedem Zeichen, das in eckigen Klammern enthalten ist.

Metazeichen: Entspricht jedem Zeichen außer Zeilenumbruch.

Anzahl der Wiederholungen: * entspricht null oder mehreren wiederholten Zeichen, + entspricht einem oder mehreren wiederholten Zeichen, ? entspricht null oder einem wiederholten Zeichen.

Start und Ende: ^ entspricht der Startposition der Zeichenfolge, $ entspricht der Endposition der Zeichenfolge.

Antonym: W entspricht jedem Zeichen, das kein Buchstabe oder Zahl ist, S entspricht jedem Zeichen, das kein Leerzeichen ist.

Gruppe: ( ) wird zum Gruppieren für eine einfache Bedienung verwendet.

3. Praxis für reguläre Ausdrücke

Das Folgende ist ein Beispiel, um zu veranschaulichen, wie reguläre Ausdrücke zum Schreiben von Code und zur Codierungseffizienz verwendet werden.

Beispiel 1: Datum aus Text extrahieren

In einer Textdatei müssen wir Datumsinformationen extrahieren, zum Beispiel: 1. Mai 2020, wir können den folgenden regulären Ausdruck verwenden:

import re

string = '2020年5月1日'
pattern = r"d+年d+月d+日"

result = re.findall(pattern, string)

print(result)
Nach dem Login kopieren

Ausgabeergebnis:

['2020年5月1日']
Nach dem Login kopieren

Beispiel 2 : Links aus HTML-Seiten extrahieren

In einer HTML-Seite müssen wir alle Linkinformationen extrahieren, zum Beispiel:

import re
import requests

r = requests.get('http://www.baidu.com')
pattern = re.compile(r'(http|https|ftp)://[^s]+')

result = pattern.findall(r.text)

print(result)
Nach dem Login kopieren

Ausgabeergebnis:

['http://www.baidu.com/', 'http://home.baidu.com/', 'http://map.baidu.com/', 'http://v.baidu.com/', 'http://tieba.baidu.com/', 'http://fanyi.baidu.com/', 'http://news.baidu.com/', 'http://baijiahao.baidu.com/', 'http://xueshu.baidu.com/', 'http://wenku.baidu.com/', 'http://music.baidu.com/', 'http://image.baidu.com/', 'http://v.baidu.com/', 'http://tieba.baidu.com/', 'http://map.baidu.com/', 'http://wenku.baidu.com/', 'http://jingyan.baidu.com/', 'http://tieba.baidu.com/', 'http://zhidao.baidu.com/', 'http://tieba.baidu.com/', 'http://tieba.baidu.com/f?kw=%D6%D0%C9%BD%C1%F4%B2%FA&fr=index', 'http://tieba.baidu.com/f?kw=%B0%D9%B6%AF%B2%FA%D0%ED&fr=index', 'http://tieba.baidu.com/f?kw=%D2%EF%BE%AD%B5%DA&fr=index', 'http://tieba.baidu.com/f?kw=Ubuntu&fr=index', 'http://tieba.baidu.com/f?kw=%B0%C2%D7%B0%B5%DA&fr=index', 'http://tieba.baidu.com/f?kw=%B7%D7%CA%D0%CE%C4&fr=index', 'http://music.baidu.com/new', 'http://news.baidu.com/n?cmd=1&class=civilnews&tn=rss', 'http://baijiahao.baidu.com/u?app_id=1589334281367279', 'http://xueshu.baidu.com/s?wd=paperuri%3A%2836d90593d4c8d317f9ef4ef93bf56000%29&filter=sc_long_sign&sc_ks_para=q%3D%E9%A3%9F%E5%93%81%E5%AE%89%E5%85%A8', 'http://wenku.baidu.com/view/13908a38069661ce85006134', 'http://music.baidu.com/top?pst=shouyeTop', 'https://www.baidu.com/duty/', 'http://ir.baidu.com']
Nach dem Login kopieren

Beispiel 3: Ersetzen Sie Zeichenfolgenkommas durch Punkte

in einer Textdatei. Wir müssen Kommas durch Punkte ersetzen, zum Beispiel:

import re

string = '12,34,56,78'
pattern = r','
replaced_string = re.sub(pattern, '.', string)

print(replaced_string)
Nach dem Login kopieren

Ausgabeergebnis:

12.34.56.78
Nach dem Login kopieren

Beispiel 4: Überprüfen Sie, ob eine Zeichenfolge eine E-Mail-Adresse ist

Bei der Entwicklung eines Anmeldesystems müssen wir überprüfen, was der Benutzer eingibt. Ist die E-Mail Adresse legal, zum Beispiel:

import re

email = 'example@gmail.com'
pattern = r'[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$'

if re.match(pattern, email):
    print('Email address is correct!')
else:
    print('Invalid email address!')
Nach dem Login kopieren

Ausgabeergebnis:

Email address is correct!
Nach dem Login kopieren

4. Reguläre Python-Ausdrücke spielen eine wichtige Rolle bei der Textverarbeitung und können uns dabei helfen, die Codierung und Zeichenfolgenverarbeitung schneller und effizienter durchzuführen Aufgaben effizient erledigen. In der tatsächlichen Entwicklung können reguläre Ausdrücke je nach Bedarf flexibel in Kombination mit anderen Python-Bibliotheken und -Funktionen angewendet werden, um eine bessere Codierungseffizienz und Codequalität zu erzielen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie reguläre Python-Ausdrücke für Codierung und Codierungseffizienz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage