2016-12-15 14 views
-2

私はとして解析されるだろう次の形式Pythonで文字列を解析するにはどうすればよいですか?

&5:420:0:[email protected] 

でのpythonへのシリアル接続を介して文字列を送信しています:

(start byte) (data length) : (type of message) (priority) (data1) : (data2): (data3) (CRC) (end byte) 

どのように私は、これらの値を解析するのでしょうか?ありがとう。

+1

あなたは何をしたいのですか? 「私はこれらの値を解析することを意味します」、解析結果に対する期待は何ですか? –

答えて

0

正規表現とその仕組みを見てみましょう。正規表現を使用すると、検索するパターンを文字列で定義できます。たとえば、正規表現の検索パターン\&(\d):(\d)は、& +数字(最初のグループに格納)+ : + 2番目のグループに格納された別の数字)を検索します。あなたの文字列でそれを使用すると、最初に5がgroup1に格納され、最初に4がgroup2に格納されます。ここで

は、メッセージのデータの長さとタイプを抽出するコードの例です:

import re 

line = "&5:420:0:[email protected]" 

matchObj = re.match(r'\&(\d):(\d)', line) 

if matchObj: 
    print ("Data length : " + matchObj.group(1)) 
    print ("Type of message : " + matchObj.group(2)) 

あなたの正規表現をしようとするhttps://regex101.com/を使用することができます。また、検索パターンの説明も表示されます。たとえば、私の例https://regex101.com/r/tSPciD/1

ここでは、完全な文字列を解析する方法を解説します。

関連する問題