gpt4 book ai didi

python - 我在这个Python代码中哪里添加re.search?

转载 作者:行者123 更新时间:2023-12-01 09:11:08 24 4
gpt4 key购买 nike

我有一些 python 代码来更改我正在使用的 NMS 上传入 SNMP 陷阱的严重性。

传入的 SNMP 陷阱包含给定严重性级别的数字范围的对象。如果传入的对象编号为单数(1、2、3、4、5 等),则以下代码有效。但当尝试匹配正则表达式编号范围时,以下代码不起作用。

## This gets the alarmTrapSeverity function and creates a variable called            Severity to hold the value
if getattr(evt, 'alarmTrapSeverity', None) is not None:
Severity = getattr(evt, 'alarmTrapSeverity')



## This part runs through the Severity to assign the correct value
if str(Severity) == '0':
evt.severity = 0
elif str(Severity) == '([1-9]|1[0-9])':
evt.severity = 1

请您建议正确的方法。我的正则表达式技能仍在发展中。

最佳答案

如果我理解正确的话,在 else-if 语句中,您希望执行正则表达式搜索以确认匹配。我的方法看起来像这样,

## This gets the alarmTrapSeverity function and creates a variable called            
Severity to hold the value
if getattr(evt, 'alarmTrapSeverity', None) is not None:
Severity = getattr(evt, 'alarmTrapSeverity')


regex = re.compile(r'([1-9]|1[0-9])')

## This part runs through the Severity to assign the correct value
if str(Severity) == '0':
evt.severity = 0
elif regex.search(str(Severity)) != None:
evt.severity = 1

这将在 str(Severity) 变量中搜索匹配的子字符串,在本例中为包含 1-19 之间数字的字符串。然后只要找到匹配项,就设置 evt.severity = 1。

此外,回顾一下您的问题,如果您在使用该正则表达式查找 1-19 之间的数字时遇到问题,另一个可行的示例可能是,

"10|1?[1-9]"

关于python - 我在这个Python代码中哪里添加re.search?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51640868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com