1

将 ASA 从 ASDM 迁移到 FMC,包括访问策略。完成该项目的步骤之一是将网络/服务对象及其组迁移到 FMC。计划通过使用正则表达式过滤 ASA 对象(来自 ASA 配置)并在 REST API 上运行 python 脚本来创建对象。现在我目前遇到的问题是将大量数据转移到 FMC,超过 3000 行。

目前正在尝试提出一种正则表达式模式,该模式将过滤多行字符串并匹配 REST API 的数据。使用 regex101 完成此任务。使用当前的正则表达式模式,我只匹配前两行的数据。我遇到的其他问题之一是并非所有行都包含'destination eq',之后正则表达式匹配'port_no'。

有人可以协助正则表达式吗?根据当前的正则表达式,想要匹配“object-group service”、“service-object”和“destination eq”之后的数据,或者当“destination eq”不存在时?

谢谢

正则表达式:

object-group service (?P<name>.+)(?:\n |.)service-object (?P<protocol>.+) destination eq (?P<port_no>\d{0,5} |\w{0,10}.+)\n

要过滤的数据:

object-group service DM_INLINE_SERVICE_8
 service-object tcp destination eq ldap
 service-object udp destination eq syslog
 service-object object kerberos5-tcp
 service-object object kerberos5-udp
 service-object object ldap-udp
 service-object udp destination eq domain
 service-object object ldap-gcs
 service-object object TCP_3268
 service-object object TCP_3269
 service-object object TCP_445
 service-object tcp-udp destination eq domain
 service-object tcp destination eq ldaps
 service-object udp destination eq ntp
 service-object object TCP_464
object-group network DM_INLINE_NETWORK_13
 network-object object IN_V030_197_memcache_01
 network-object object IN_V030_198_memcache_02
4

1 回答 1

0

如果您想匹配 'object-group service'、'service-object' 和 'destination eq' 之后的数据,您可以使用交替来匹配object-group serviceorservice-object和可选的非捕获组destination eq

^\s*(?:object-group service|service-object) (.+?)(?: destination eq (\w+))?$

在零件

  • ^字符串的开始
  • \s*匹配 0+ 个空格字符
  • (?:object-group service|service-object)匹配 1 个选项
  • (.+?)匹配空间并在第 1 组中捕获匹配任何非贪婪字符
  • (?:非捕获组
    • destination eq (\w+)匹配空间和目标 eq 并在第 2 组中捕获 1+ 个单词字符
  • )?关闭组并使其可选
  • $字符串结束

正则表达式演示

于 2019-11-04T11:26:27.220 回答