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.00pH

今のところ[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の間であるという情報を使用して、その正規表現を改善できます(最初の桁は1つだけなど)。または、カンマで区切るか、csvモジュールを使用してください。

于 2013-10-18T19:12:07.287 に答える
0

多分あなたはそれを使うことができます:

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

必要なグループ 1 マッチ番号。そしてその制御データ

于 2013-10-18T19:28:27.693 に答える
0

,文字列のフォーマットが固​​定されている場合、つまりawk などで分割するとデータが 9 番目の位置にある場合:

$ 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 に答える