對于我面臨的這個特定問題,我很難理解正則運算式語法。我正在使用 Python。
這是我正在使用的傳感器的示例輸出(帶有隨機值),它位于 txt 檔案中:
Sensors starting
{'device_id': 'M123'}
{'x_acc': 0.00, 'y_acc' : 0.01, 'z_acc' : 1.02}
但從另一臺設備我得到它是這樣的:
Sensors starting
{'device_id': 'S123'}
{'y_acc': 0.00, 'z_acc' : 0.01, 'x_acc' : 1.02}
我想要做的是提取 { 和 } 之間的任何內容,比方說,'x_acc' 以便它檢測兩個字串并且不選擇具有設備 ID 的行,因為它每隔幾次在同一個檔案中列印多次分鐘。
我能夠想出這種模式:
pattern = r'\{.*?\}'
要選擇帶有 { } 的行,但我想指定其中要選擇的帶有 x_acc、y_acc 或 z_acc 的行。當我知道第一個專案時,我能夠做到 - 然后我將它添加到模式中,但由于訂單從一個設備更改為另一個,我不知道該怎么做。
uj5u.com熱心網友回復:
您可以使用
{[^{}]*'[xyz]_acc'[^{}]*}
請參閱正則運算式演示。
詳情:
{- 一個{字符[^{}]*- 除花括號外的零個或多個字符'[xyz]_acc'- 一個'char,然后是一個或charx,然后是一個子字串yz_acc'[^{}]*- 除花括號外的零個或多個字符}- 一個}字符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/481386.html
