首页 > 解决方案 > 正则表达式匹配十六进制和复杂字符之间的数字

问题描述

我有一段文字:

"Ngo&#-225;n:   8.40   Zữ kăn:   6.5   Kịch zuử:   0.0   Đoan l"&#-237;;:   5   GTBH:   6.50   KH: 6"

我想:使用正则表达式在 Python 中像这样提取所有数字:

"8.40           6.5         0.0        5           6.50            6"

你能告诉我如何处理这个任务吗?谢谢。

我只是更新我所做的:

(?<!\:)\d{1,2}\.?\d*?

用作Ngo&#-225;n: 8.40 Zữ kăn: 6.5 Kịch zuử: 0.0 Đoan l"&#-237;;: 5 GTBH: 6.50 KH: 6测试字符串。在此处查看 演示

Sill,此模式捕获十六进制值: 225237. 我们可以修改一些东西来提取这些吗?

标签: pythonregex

解决方案


您可以使用re.findall以下正则表达式。

:\s*([\d\.]+)

我还在 Python 上测试了结果。

import re

string = "Ngo&#-225;n: 8.40 Zữ kăn: 6.5 Kịch zuử: 0.0 Đoan l\"&#-237;;: 5 GTBH: 6.50 KH: 6"

regex = re.compile(r":\s*([\d\.]+)")
result = regex.findall(string)
print(result)

结果。

['8.40', '6.5', '0.0', '5', '6.50', '6']

推荐阅读