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:
Konstruieren Sie den regulären Ausdruck:
<code class="python">import re pattr = re.compile(???) x = pattr.match("4.5")</code>
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>
Ü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
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!