将变量指定为以正则表达式运算符开头的值'^'



在编写正则表达式时,是否可以指定变量字符串作为'^'的输入?

因此,如果您有以下字符串列表:testlist = ['access-list something something', 'something access-list']

有一行代码在这样调用时可以工作:

NAT_acls = parse.find_objects(r^'access-list')

此代码解析配置文件并返回所有以"访问列表"开头的字符串。

我想使用一个变量字符串,该字符串在调用上面的行时被选中,因此只返回具有特定名称的访问列表。所以我可以做这样的事情:

acl_name = ''.join(['access-list',' ',some_acl_name]) NAT_acls = parse.find_objects(^acl_name)

此代码不起作用。有没有一种方法可以将"^"运算符与变量一起使用?我看过文件,但一点也不知道。

您要查找的代码是

NAT_acls = parse.find_objects(r"^{}".format(re.escape(acl_name)))

r"^{}"将填充转义的acl_name字符串。如果它包含特殊的正则表达式元字符,那么使用正则表达式得到的结果可能不是您所期望的(因为.匹配任何字符,但匹配换行符,+匹配一个或多个量化子模式,等等)

^将让正则表达式引擎在字符串的开头查找匹配项。

最新更新