[Python] 纯文本查看 复制代码 import re
import pandas as pd
# 示例文本
text = """
<GD0H3FW10-WW01>display security-policy ip
Security-policy ip
rule 37 name SRM202307100275
action pass
disable
logging enable
counting enable
description 护网临时限制
source-zone Trust
destination-zone Untrust
source-ip Net_192.168.232.0
destination-ip 3.1.1.1
service tcp_3389
rule 38 name SRM202307100275-2
action drop
disable
logging enable
counting enable
description 限制非 sjyh01用户访问
source-zone Trust
destination-zone Untrust
destination-ip 1.1.2.1
service icmp_any
service tcp_20060
rule 36 name cy_test
action pass
disable
logging enable
counting enable
source-zone Trust
destination-zone Untrust
source-ip ip_192.168.232.214
service http
service ssh
service icmp_any
"""
# 正则表达式匹配规则
rule_pattern = re.compile(r'rule \d+ name (.*?)\n(.*?)(?=\nrule|\Z)', re.DOTALL)
service_pattern = re.compile(r'service (telnet|ssh|tcp_3389)')
# 提取符合条件的规则名称
rule_names = []
for match in rule_pattern.finditer(text):
rule_name = match.group(1)
rule_body = match.group(2)
if service_pattern.search(rule_body):
rule_names.append(rule_name)
# 写入Excel文件
df = pd.DataFrame(rule_names, columns=['Rule Name'])
df.to_excel('rules_with_services.xlsx', index=False)
print("符合条件的规则名称已写入rules_with_services.xlsx") |