我有以下字符串:
static name p1SystemSignalAlarm_oid = {4.3.4.2.1}
static name p1SystemKfLinkNet_oid = {3.4.1.5.7}
我需要从第一行获得“警报”,从第二行获得“网络”。 我成功选择了SystemSignalAlarm_oid,我可以选择使用strip所需的单词。但如果我可以使用一个正则表达式,那将会很棒。我该如何选择呢?
答案 0 :(得分:3)
这会在您的示例行中找到Alarm
或Net
:
for item in lines:
result = re.findall(r'([A-Z][a-z]+)_oid', item)
print result[0]
答案 1 :(得分: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'