Heim > Backend-Entwicklung > Python-Tutorial > Wie können reguläre Ausdrücke verwendet werden, um Gleitkommawerte aus Zeichenfolgen zu extrahieren?

Wie können reguläre Ausdrücke verwendet werden, um Gleitkommawerte aus Zeichenfolgen zu extrahieren?

DDD
Freigeben: 2024-10-21 12:30:04
Original
361 Leute haben es durchsucht

How Can Regular Expressions Be Used to Extract Floating-Point Values from Strings?

Gleitkommawerte aus Zeichenfolgen mit regulären Ausdrücken extrahieren

Betrachten Sie die Aufgabe, einen Double-Wert aus einer Zeichenfolge zu extrahieren. Um dies mithilfe eines regulären Ausdrucks zu erreichen, sind die folgenden Schritte erforderlich:

  1. Konstruieren Sie den regulären Ausdruck:

    <code class="python">import re
    
    pattr = re.compile(???)
    x = pattr.match("4.5")</code>
    Nach dem Login kopieren
  2. Verwenden Sie Perl-kompatible reguläre Ausdrücke:
    Ein geeigneter regulärer Ausdruck aus der Perl-Dokumentation zum Extrahieren von Gleitkommawerten ist:

    <code class="python">re_float = re.compile("""(?x)
    ^
       [+-]?\ *      # an optional sign and space
       (             # integers or f.p. mantissas
           \d+       # start with a ...
           (           # ? takes care of integers
               \.\d* # mantissa a.b or a.
           )?
          |\.\d+     # mantissa .b
       )
       ([eE][+-]?\d+)?  # optionally match an exponent
    $""")</code>
    Nach dem Login kopieren
  3. Übereinstimmungen suchen und abrufen:
    Um den Double-Wert zu extrahieren, wenden Sie den kompilierten regulären Ausdruck auf die gewünschte Zeichenfolge an:

    <code class="python">m = re_float.match("4.5")
    print(m.group(0))</code>
    Nach dem Login kopieren

    Dies wird Folgendes ausgeben:

    4.5
    Nach dem Login kopieren
  4. Mehrere Werte aus einer Zeichenfolge extrahieren:
    Um mehrere Gleitkommawerte aus einer größeren Zeichenfolge zu extrahieren, verwenden Sie die Methode findall():

    <code class="python">s = """4.5 abc -4.5 abc - 4.5 abc + .1e10 abc . abc 1.01e-2 abc 
        1.01e-.2 abc 123 abc .123"""
    print(re.findall(r"[+-]? *(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?", s))</code>
    Nach dem Login kopieren

    Dies wird Gibt eine Liste der extrahierten Werte zurück, einschließlich:

    ['4.5', '-4.5', '- 4.5', '+ .1e10', ' 1.01e-2', '       1.01', '-.2', ' 123', ' .123']
    Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie können reguläre Ausdrücke verwendet werden, um Gleitkommawerte aus Zeichenfolgen zu extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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