Heim > Artikel > Backend-Entwicklung > Wie extrahiere ich doppelte Werte aus Zeichenfolgen mithilfe regulärer Ausdrücke?
Double-Werte aus Strings mit Regex extrahieren
Problem: Wie kann man mit Regex einen Double-Wert aus einem String isolieren? ein regulärer Ausdruck?
Betrachten Sie den folgenden Codeausschnitt:
<code class="python">import re pattr = re.compile(???) x = pattr.match("4.5")</code>
Lösung:
So extrahieren Sie einen Double-Wert aus einer Zeichenfolge mithilfe eines regulären Ausdrucks Ausdruck können Sie den folgenden regulären Ausdruck verwenden:
(?x) ^ [+-]?\ * # Optional sign and space ( # Integers or f.p. mantissas: \d+ # Integers of the form a... ( \.\d* # Mantissa of the form a.b or a. )? # ? takes care of integers of the form a |\.\d+ # Mantissa of the form .b ) ([eE][+-]?\d+)? # Optionally match an exponent $
Dieser reguläre Ausdruck entspricht Zeichenfolgen, die mit einem optionalen Vorzeichen und Leerzeichen beginnen, gefolgt von einer Ganzzahl oder einer Gleitkomma-Mantisse und einem optionalen Exponenten.
Hier ist ein Beispiel:
<code class="python">import re re_float = re.compile("""(?x) ^ [+-]?\ * # Optional sign and space ( # Integers or f.p. mantissas: \d+ # Integers of the form a... ( \.\d* # Mantissa of the form a.b or a. )? # ? takes care of integers of the form a |\.\d+ # Mantissa of the form .b ) ([eE][+-]?\d+)? # Optionally match an exponent $""") m = re_float.match("4.5") print(m.group(0)) # -> 4.5</code>
Mehrere Zahlen aus einer Zeichenfolge extrahieren:
Wenn Sie mehrere Zahlen aus einer größeren Zeichenfolge extrahieren müssen, können Sie dies tun Verwenden Sie die Funktion 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)) # -> ['4.5', '-4.5', '- 4.5', '+ .1e10', ' 1.01e-2', # ' 1.01', '-.2', ' 123', ' .123']</code>
Dieser reguläre Ausdruck entspricht jeder Zahl, die aus einem optionalen Vorzeichen, einem Leerzeichen, einer Kombination aus Ganzzahl und optionalem Bruchteil sowie einer optionalen Exponentenschreibweise besteht.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich doppelte Werte aus Zeichenfolgen mithilfe regulärer Ausdrücke?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!