lin中选择未知文本的正则表达式

2024-06-25 07:07:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下字符串:

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

我需要从第一行得到“警报”,从第二行得到“网络”。 我成功地选择了SystemSignalAlarm\uOID,我可以使用strip选择所需的单词。但如果我能用一个正则表达式就太好了。我应该如何选择它?你知道吗


Tags: 字符串name网络static警报单词stripoid
2条回答

这将从样本行中找到AlarmNet

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'

相关问题 更多 >