簡體   English   中英

Python Regex從字符串中獲取Float編號

[英]Python Regex to get Float number from string

我正在使用正則表達式來解析字符串中的浮點數。

re.findall("[^a-zA-Z:][-+]?\d+[\.]?\d*", t)

是我使用的代碼。 這段代碼有問題。 如果數字和任何字符之間沒有空格,則不解析數字。 例如,“0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9”的期望輸出為[0,1,2,3,4,5,6,7,8,9] ,但它返回“[| 1,| 2,| 3,...]。

有什么方法可以解決這類問題嗎?

使用

re.findall(r"(?<![a-zA-Z:])[-+]?\d*\.?\d+", t)

請參閱正則表達式演示

它將匹配不帶字母或冒號的整數和浮點數。

細節

  • (?<![a-zA-Z:]) - 一個負面的lookbehind,確保在當前位置之前沒有ASCII字母或冒號
  • [-+]? - 可選+-
  • \\d* - 零個或多個數字
  • \\.? - 一個可選的點
  • \\d+ - 1+位數

您應該能夠做的最簡單的事情就是將正則表達式的“數字”部分包裝到捕獲組中,然后查看這些捕獲組。

re.findall("[^a-zA-Z:]([-+]?\d+[\.]?\d*)", t)

我剛剛在搜索的“數字”部分添加了括號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM