Python Regex 从字符串中获取 float

标签 python regex

我正在使用正则表达式从字符串中解析 float 。

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)

参见 regex demo

它将匹配前面没有字母或冒号的整数和 float 。

详细信息:

  • (?<![a-zA-Z:]) - 否定后视,确保在当前位置之前没有 ASCII 字母或冒号
  • [-+]? - 一个可选的 +-
  • \d* - 零个或多个数字
  • \.? - 一个可选的点
  • \d+ - 1+ 位数

关于Python Regex 从字符串中获取 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42142309/

相关文章:

python - PyInstaller 创建了ex。无法在带有 ubuntu 的 virtualbox 上运行

python - 正确将 png 转换为 npy numpy 数组(图像到数组)

php - Notepad++ 删除内含特定文本的标签

c# - 正则表达式。分割为“()”和“?”

Python 字符串清理 + 操作(重音字符)

python - 用 Python Boost 包装 C++ operator()

Python-夏娃 : More than one additional lookup

模式中包含\Uxxxxxxxx 字符的 C# 正则表达式

python - 使用python提取并解析

python - 正则表达式在 python 中匹配和清理引号