選擇未知的文字表達我有以下字符串:定期爲行
static name p1SystemSignalAlarm_oid = {4.3.4.2.1}
static name p1SystemKfLinkNet_oid = {3.4.1.5.7}
我需要從第一線和第二線「網」獲得「報警」。 我成功選擇了SystemSignalAlarm_oid,我可以選擇使用strip所需的單詞。但如果我可以使用一個正則表達式,那將會很棒。我應該如何選擇它?
選擇未知的文字表達我有以下字符串:定期爲行
static name p1SystemSignalAlarm_oid = {4.3.4.2.1}
static name p1SystemKfLinkNet_oid = {3.4.1.5.7}
我需要從第一線和第二線「網」獲得「報警」。 我成功選擇了SystemSignalAlarm_oid,我可以選擇使用strip所需的單詞。但如果我可以使用一個正則表達式,那將會很棒。我應該如何選擇它?
這會發現無論是從您的樣品線Alarm
或Net
:
for item in lines:
result = re.findall(r'([A-Z][a-z]+)_oid', item)
print result[0]
謝謝。有用)) –
您似乎需要最後一個大寫字母和下劃線之間的單詞。所以:
([A-Z][a-z]*)_
再取組號碼1,忽略下劃線:
>>> re.search('([A-Z][a-z]*)_', 'p1SystemSignalAlarm_oid').group(1)
'Alarm'
>>> re.search('([A-Z][a-z]*)_', 'p1SystemKfLinkNet_oid).group(1)
'Net'
你嘗試過什麼至今? –
你只是想要報警或網絡?或者你想要賦值的其他部分的價值? – Alter
我試過line = static name p1SystemSignalAlarm_oid = {4.3.4.2.1} result = re.search(r'\ BSignal \ B'w +',line) –