我引用了一段文字:
"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
作为测试字符串。见demo here
这个模式捕获十六进制值:225
和237
。我们可以修改一些东西来提取这些吗
您尝试的模式
(?<!\:)\d{1,2}\.?\d*?
以一个数字开始匹配,断言直接在左边的不是:
,在示例中,数据对所有数字都是真的由于冒号后面有1个或多个空格,因此可以使用捕获组而不是查找组:
解释
:
逐字匹配[^\S\r\n]+
匹配1+空格字符,不带换行符(
捕获组1\d+(?:\.\d+)?
将1+个数字与可选的小数部分匹配)
关闭组1Regex demoPython demo
使用PyPi regex module,如果whitspace字符是可选的,您还可以在匹配数字之前在左侧断言
:
,后跟0+空格字符:Regex demoPython demo
或者,为了从示例数据中获得所需的数字,您也可以直接在右侧断言no^{,而不是在左侧检查
:
:Regex demo
可以将
re.findall
与以下正则表达式一起使用我还在Python上测试了结果
结果
试试这个:
re.findall(":\\s*([0-9.]+)",s)
相关问题 更多 >
编程相关推荐