使用正規表示式從字串中提取浮點值
考慮從字串中提取雙精確值的任務。要使用正規表示式實現此目的,涉及以下步驟:
構造正規表示式:
<code class="python">import re pattr = re.compile(???) x = pattr.match("4.5")</code>
<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>
Perl 文件中用於擷取浮點值的適當正規表示式是:
<code class="python">m = re_float.match("4.5") print(m.group(0))</code>
尋找並檢索符合:
4.5要提取雙精確度值,請將已編譯的正規表示式應用於所需的字串:
這將輸出:
<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>
從字串中提取多個值:
['4.5', '-4.5', '- 4.5', '+ .1e10', ' 1.01e-2', ' 1.01', '-.2', ' 123', ' .123']要從較大的字串中提取多個浮點值,請使用findall () 方法:
以上是如何使用正規表示式從字串中提取浮點值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!