我已经在论坛中搜索了但是没有运气来做我想要通过在数组中搜索正则表达式来实现的目标。我尝试了findall
,match
,并对re
库进行了过滤,但我无法实现我正在寻找的功能但是使用fnmatch
功能我做到了但我知道fnmatch并不像re
那样强大。
这是数组的外观:
[0] rule 5 permit sctp source 14.191.156.0 0.0.0.15 destination 201.175.131.64 0.0.0.7
[1] rule 60 permit icmp source 14.191.210.34 0 destination 201.175.137.78 0
[2] rule 61 permit tcp source 14.191.210.34 0 destination 201.175.137.78 0
[3] rule 5000 deny ip
基本上,我想过滤与此正则表达式匹配的规则:
rule* icmp|sctp|udp|tcp* and that end is "deny ip"
1
pattern = re.compile('rule* icmp|sctp|udp|tcp*')
if pattern.search(array)
我可以用fnmatch来做但我必须做四次,因为它不支持或reg表达式(|
)
if fnmatch(acl[j],'*rule * permit icmp*'):
2
另外,如果以deny ip结束再做一次,我想过滤一下。
pattern = re.compile('deny ip$')