在编写正则表达式时,是否可以指定变量字符串作为'^'的输入?
因此,如果您有以下字符串列表: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
字符串。如果它包含特殊的正则表达式元字符,那么使用正则表达式得到的结果可能不是您所期望的(因为.
匹配任何字符,但匹配换行符,+
匹配一个或多个量化子模式,等等)
^
将让正则表达式引擎在字符串的开头查找匹配项。