2017-07-05 33 views
-1

選擇未知的文字表達我有以下字符串:定期爲行

static name p1SystemSignalAlarm_oid = {4.3.4.2.1} 
static name p1SystemKfLinkNet_oid = {3.4.1.5.7} 

我需要從第一線和第二線「網」獲得「報警」。 我成功選擇了SystemSignalAlarm_oid,我可以選擇使用strip所需的單詞。但如果我可以使用一個正則表達式,那將會很棒。我應該如何選擇它?

+2

你嘗試過什麼至今? –

+0

你只是想要報警或網絡?或者你想要賦值的其他部分的價值? – Alter

+0

我試過line = static name p1SystemSignalAlarm_oid = {4.3.4.2.1} result = re.search(r'\ BSignal \ B'w +',line) –

回答

3

這會發現無論是從您的樣品線AlarmNet

for item in lines: 
    result = re.findall(r'([A-Z][a-z]+)_oid', item) 
    print result[0] 
+0

謝謝。有用)) –

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'