Heim >Backend-Entwicklung >Python-Tutorial >Wie verwende ich reguläre Ausdrücke, um Float-/Double-Werte in Python zu extrahieren?

Wie verwende ich reguläre Ausdrücke, um Float-/Double-Werte in Python zu extrahieren?

Linda Hamilton
Linda HamiltonOriginal
2024-10-21 12:05:02905Durchsuche

How to Use Regular Expressions to Extract Float/Double Values in Python?

Gleitkomma-/Double-Werte mit regulären Ausdrücken extrahieren

In Python können Sie reguläre Ausdrücke verwenden, um Gleitkomma- oder Double-Werte aus Zeichenfolgen zu extrahieren . Lassen Sie uns einen leistungsstarken regulären Ausdruck aus Perl erkunden:

(?x)
^
  [+-]?\ *      # Optional sign followed by optional whitespace
  (             # Match integers or floating-point mantissas
      \d+       # Whole numbers
      (
          \.\d* # Mantissa with decimal point (a.b or a.)
      )?        # Optional decimal point
     |\.\d+     # Mantissa without leading whole number (.b)
  )
  ([eE][+-]?\d+)?  # Optional exponent
$

Zum Beispiel, um einen doppelten Wert aus einer Zeichenfolge zu extrahieren:

<code class="python">import re

# Create a regular expression pattern
re_float = re.compile(above_regexp)

# Match the pattern against a string
match = re_float.match("4.5")

# Extract the matched value
double_value = match.group(0)

print(double_value)  # Output: 4.5</code>

Um mehrere numerische Werte aus einer größeren Zeichenfolge zu extrahieren, müssen Sie kann die findall()-Methode verwenden:

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

numeric_values = re.findall(r"[+-]? *(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?", s)

print(numeric_values)  # Output: ['4.5', '-4.5', '- 4.5', '+ .1e10', ' 1.01e-2', '       1.01', '-.2', ' 123', ' .123']</code>

Das obige ist der detaillierte Inhalt vonWie verwende ich reguläre Ausdrücke, um Float-/Double-Werte in Python 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