0

细绳:

<LF><CR>A214 pH/ISE,X00066,2.59,ABCDE,10/16/13 22:06:59,ABC1,CH-1,pH,7.00,pH,0.0, mV,25.0,C,100.0,%,M100,#35<LF><CR>

我只需要匹配7.00- 这个数字可以是任何地方0.00 - 14.00(它的pH读数)。

现在我只能想出[0-9]{1,2}\.[0-9]{2}哪个也匹配字符串前面出现的软件版本号(2.59

任何帮助是极大的赞赏。

编辑:谢谢大家。我通过使用弄明白了[0-9]{1,2}\.[0-9]{2}(?=,p)

4

3 回答 3

1

只需找到所有条目并获取最后一个:

>>> s = "A214 pH/ISE,X00066,2.59,ABCDE,10/16/13 22:06:59,ABC1,CH-1,pH,7.00,pH,0.0, mV,25.0,C,100.0,%,M100,#35"
>>> re.findall("[0-9]{1,2}.[0-9]{2}", s)[-1]
'7.00'

您可以通过使用 PH 介于 0-14 之间的信息(第一个数字只能是一个等)来改进该正则表达式。或者更好,只需用逗号分隔或使用csv模块。

于 2013-10-18T19:12:07.287 回答
0

如果字符串的格式是固定的,即数据在第 9 位,如果您在,使用时拆分,例如 awk:

$ awk -F, '{print $8, $9}' input
pH 7.00

或在 awk 模式下使用 perl:

$ perl -F, -lane 'print $F[8]' input
7.00

或者这个正则表达式

pH,(\d+\.\d{2})

在http://www.rubular.com/r/3kkWNVBAi8上查看它

于 2013-10-18T19:26:15.920 回答
0

也许你可以使用它:

pH,(([0-9]|1[0-4])\.\d{2}),pH

您需要的第 1 组匹配号码。还有那个控制数据

于 2013-10-18T19:28:27.693 回答