正则表达式提取特定分号后的数字

2024-04-26 23:04:10 发布

您现在位置:Python中文网/ 问答频道 /正文

你能帮我为下列字符串写一个表达式吗

Multi 3620 IDS; 17120846;9;12.04.2018 
14:09:02;8,531;;pH;24,1;°C;Temp;AR;60%;;SenTix 940; C171412055;

如何使用正则表达式获得数字8,531?你知道吗

在分号的特定数字之后提取数字有什么规则吗?你知道吗

谢谢


Tags: 字符串ids表达式规则数字multitempph
1条回答
网友
1楼 · 发布于 2024-04-26 23:04:10

无正则表达式解决方案

就我个人而言,我甚至不会用regex来做这个:

See code in use here

import re

s = "Multi 3620 IDS; 17120846;9;12.04.2018 \n14:09:02;8,531;;pH;24,1;°C;Temp;AR;60%;;SenTix 940; C171412055;"
print(s.split(";")[4])

正则表达式解决方案

但是如果您必须使用regex(出于某种未知的原因),您可以使用以下命令

See regex in use here

(?:[^;]*;){4}([^;]+)
  • (?:[^;]*;){4}精确匹配以下4次
    • [^;]*匹配除;以外的任何字符任意次数
    • ;逐字匹配
  • ([^;]+);以外的任何字符捕获到捕获组1中一次或多次

See code in use here

import re

s = "Multi 3620 IDS; 17120846;9;12.04.2018 \n14:09:02;8,531;;pH;24,1;°C;Temp;AR;60%;;SenTix 940; C171412055;"
r = re.compile("(?:[^;]*;){4}([^;]+)")
m = r.match(s)
if m:
    print(m.group(1))

相关问题 更多 >