Heim  >  Artikel  >  Backend-Entwicklung  >  Das Grundprinzip besteht darin, eine Reihe von Sonderzeichen und Syntax zu verwenden, um Textdaten abzugleichen und zu bearbeiten. Ein regulärer Ausdruck besteht normalerweise aus einer Musterzeichenfolge, die ein abzugleichendes Textmuster beschreibt, sowie einem oder mehreren Sonderzeichen und einer Syntax, die steuern, wie und was das Ergebnis ist. Reguläre Ausdrücke in Python werden normalerweise mit dem re-Modul implementiert

Das Grundprinzip besteht darin, eine Reihe von Sonderzeichen und Syntax zu verwenden, um Textdaten abzugleichen und zu bearbeiten. Ein regulärer Ausdruck besteht normalerweise aus einer Musterzeichenfolge, die ein abzugleichendes Textmuster beschreibt, sowie einem oder mehreren Sonderzeichen und einer Syntax, die steuern, wie und was das Ergebnis ist. Reguläre Ausdrücke in Python werden normalerweise mit dem re-Modul implementiert

WBOY
WBOYnach vorne
2023-05-10 09:40:141291Durchsuche

    Was ist ein regulärer Ausdruck?

    Regulärer Ausdruck, auch als regulärer Ausdruck bekannt (englisch: Regular Expression, im Code oft als Regex, Regexp oder RE abgekürzt), ist ein Konzept in der Informatik. Reguläre Ausdrücke werden häufig verwendet, um Text abzurufen und zu ersetzen, der einem bestimmten Muster entspricht. Viele Programmiersprachen unterstützen die String-Manipulation mithilfe regulärer Ausdrücke. Beispielsweise verfügt Perl über eine integrierte leistungsstarke Engine für reguläre Ausdrücke. Das Konzept der regulären Ausdrücke wurde ursprünglich durch Tool-Software unter Unix populär gemacht. Ein regulärer Ausdruck ist eine logische Formel, die mit Zeichenfolgen (einschließlich gewöhnlicher Zeichen (z. B. Buchstaben zwischen a und z) und Sonderzeichen („Metazeichen“) arbeitet und einige vordefinierte spezifische Zeichen sowie die Kombination dieser spezifischen Zeichen verwendet Zeichen bilden einen „Regelstring“. Dieser „Regelstring“ wird verwendet, um eine Filterlogik für Strings auszudrücken. Ein regulärer Ausdruck ist ein Textmuster, das eine oder mehrere Zeichenfolgen beschreibt, die bei der Suche nach Text übereinstimmen sollen.

    1. Beispieleinführung

    Nachdem wir viel Unsinn geredet haben, können wir es anhand eines Beispiels veranschaulichen. Wir können reguläre Ausdrücke verwenden, um Tools oder Python zu testen Zuerst geben wir einen Text ein.

    Hallo, mein Name ist Tina, meine Telefonnummer ist 123456 und meine Website ist http://tina.com.

                                   [a-zA-z]+://[^\s]*

    us Sie können den Weblink, also die URL, im Text abrufen. Ist das nicht erstaunlich?

    Das liegt daran, dass es eigene Matching-Regeln gibt, von denen einige wie folgt lauten.

    Beliebiges Zeichen*0 oder mehr Ausdrücke #🎜🎜 ## 🎜🎜#+Ein oder mehrere Ausdrücke Sie können weitere Übereinstimmungsregeln selbst überprüfen.
    Modus Beschreibung
    .#🎜 🎜 # #

    ?,*,+,d,w

    sind alle gleichwertige Zeichen # 🎜🎜#? Entspricht der passenden Länge {0,1}

    *Entspricht der passenden Länge {0,}

    #

    + entspricht der passenden Länge {1,}

    d entspricht [0-9] #🎜🎜 #

    D entspricht [^0-9]

    w entspricht [A-Za-z_0-9]#🎜🎜 ##🎜 🎜#

    W entspricht [^A-Za-z_0-9]

    2.match()#🎜 ###这里#Hier stelle ich eine häufig verwendete Matching-Methode vor & mdash; & mdash;

    matching target

    res = re.match('hello\s(\d+)sword')
    gieriges Matching
    res = re.match('hello.*(\d+)sword')

    3.findall()

    Das verwenden wir am häufigsten, Mal sehen, wie das verwendet wird.

    import re
     
    useData = str(input('请输入字符串数据:'))
     
    '''
    匹配字符串中的数字,+是匹配前面的子表达式一次或多次
    '''
    digital = re.findall('\d+',useData)
     
    print(digital)

    Werfen wir einen Blick auf die laufenden Ergebnisse

    Die Funktion findall() gibt alle übereinstimmenden Zeichenfolgen zurück und gibt einen Wert zurück Der Datentyp ist Liste.

    Gemeinsame Symbole

    Lassen Sie uns über die gemeinsamen Symbole regulärer Ausdrücke sprechen.

    Das Zeichen „.“ stimmt mit jedem einzelnen Zeichen überein. Das Grundprinzip besteht darin, eine Reihe von Sonderzeichen und Syntax zu verwenden, um Textdaten abzugleichen und zu bearbeiten. Ein regulärer Ausdruck besteht normalerweise aus einer Musterzeichenfolge, die ein abzugleichendes Textmuster beschreibt, sowie einem oder mehreren Sonderzeichen und einer Syntax, die steuern, wie und was das Ergebnis ist. Reguläre Ausdrücke in Python werden normalerweise mit dem re-Modul implementiert

    Das Zeichen „“ ist ein Escape-Zeichen.

    „[…]“ ist der Zeichensatz.

    „(.*?)“ ist das am häufigsten verwendete Zeichen in Python-Crawlern. Es wird als Greedy-Algorithmus bezeichnet und kann mit jedem Zeichen übereinstimmen.

    Schauen wir uns unten einen Beispielcode an.

    import re
     
    a=‘xxixxjshdxxlovexxsfhxxpythonxx'
     
    data=re.findall(‘xx(.*?)xx')
     
    print(data)

    Lassen Sie es uns ausführen und die Wirkung sehen. #? 🎜#

    Die sogenannten Sonderzeichen sind Zeichen mit besonderer Bedeutung, wie zum Beispiel die in runoo*b. Vereinfacht ausgedrückt repräsentieren sie die Bedeutung einer beliebigen Zeichenfolge. Wenn Sie das *-Symbol in einer Zeichenfolge finden möchten, müssen Sie das * maskieren, d. h. ein davor einfügen, damit runo*ob mit der Zeichenfolge runo*ob übereinstimmt.

    Viele Metazeichen erfordern eine besondere Behandlung, wenn versucht wird, sie zuzuordnen. Um diese Sonderzeichen zuzuordnen, müssen Sie die Zeichen zunächst mit einem „Escapezeichen“ versehen, also mit einem Backslash voranstellen. Die folgende Tabelle listet die Sonderzeichen in regulären Ausdrücken auf:

    Sonderzeichen

    Beschreibung

    #🎜 🎜#

    $

    Entspricht der Endposition der Eingabezeichenfolge. Wenn die Multiline-Eigenschaft des RegExp-Objekts festgelegt ist, stimmt $ auch mit „n“ oder „r“ überein. Um das $-Zeichen selbst abzugleichen, verwenden Sie $.

    ()

    Markiert den Anfang und das Ende eines Unterausdrucks. Unterausdrücke können zur späteren Verwendung abgerufen werden. Um diese Zeichen zuzuordnen, verwenden Sie ( und ). * Entspricht dem vorhergehenden Unterausdruck null oder mehrmals. Um das Zeichen * zu finden, verwenden Sie *. +. Entspricht jedem einzelnen Zeichen außer dem Zeilenumbruchzeichen n. Um zuzuordnen, verwenden Sie .

     概念说了一大堆,大家可能也记不住,我直接说几个案例,大家就能明白其他的道理。

    这是某网的HTML,部分片段如下:

    <span class=“price”>§<i>123</i></span>
     
    <span class=“price”>§<i>133</i></span>
     
    <span class=“price”>§<i>156</i></span>
     
    <span class=“price”>§<i>189</i></span>

       大家会发现只有中间的一段不一样,而不一样的数据就是我们想要的,我们怎么用正则表达式提取出来呢.

    <span class=“price”>§<i>(.*?)</i></span>

    就可以了,我们看看效果吧。

    123
    133
    156
    189

    Entspricht dem vorhergehenden Unterausdruck einmal oder mehrmals. Um das +-Zeichen zu finden, verwenden Sie +.

    Das obige ist der detaillierte Inhalt vonDas Grundprinzip besteht darin, eine Reihe von Sonderzeichen und Syntax zu verwenden, um Textdaten abzugleichen und zu bearbeiten. Ein regulärer Ausdruck besteht normalerweise aus einer Musterzeichenfolge, die ein abzugleichendes Textmuster beschreibt, sowie einem oder mehreren Sonderzeichen und einer Syntax, die steuern, wie und was das Ergebnis ist. Reguläre Ausdrücke in Python werden normalerweise mit dem re-Modul implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen