我想知道如何构造正则表达式以提取列表。
这是我的字符串:
audit = "{## audit_filter = ['hostname.*','service.*'] ##}"
这是我的表情:
AUDIT_FILTER_RE = r'([.*])'
这是我的搜索语句:
audit_filter = re.search(AUDIT_FILTER_RE, audit).group(1)
我想提取方括号内的所有内容,包括方括号。 '[...]'
预期输出:
['hostname.*','service.*']
答案 0 :(得分:1)
import re
audit = "{## audit_filter = ['hostname.*','service.*'] ##}"
print eval(re.findall(r"\[.*\]", audit)[0]) # ['hostname.*', 'service.*']
findall
返回字符串匹配列表。在您的情况下,应该只有一个,所以我正在检索索引为0的字符串,它是列表的字符串表示形式。然后,我使用eval(...)
将列表的字符串表示形式转换为实际列表。只是要小心:
eval()
,因为这将是安全问题。答案 1 :(得分:0)
使用composer require frankforte/quantumphp
例如:
r"\[(.*?)\]"
输出:
import re
audit = "{## audit_filter = ['hostname.*'] ##}"
print(re.findall(r"\[(.*?)\]", audit))