Heim  >  Artikel  >  Backend-Entwicklung  >  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
DDDOriginal
2024-10-21 12:30:04252Durchsuche

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>
  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>
  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>

    Dies wird Folgendes ausgeben:

    4.5
  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>

    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']

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!

Stellungnahme:
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