基于regex:python拆分文件内容
我想将每个规则(规则1、规则2、规则3)保存在一个列表中。示例文件: 我正在使用以下代码基于regex:python拆分文件内容,python,regex,list,split,Python,Regex,List,Split,我想将每个规则(规则1、规则2、规则3)保存在一个列表中。示例文件: 我正在使用以下代码 patt=re.compile("\s*[\n]*rule.*[\n]*\s*.*{") results=re.split(r'\s*[\n]*rule.*[\n]*\s*.*{.', buf) 结果不包含列表。但拆分似乎不起作用。 有人能帮忙吗 ------------文件内容-------- rule rule1{ meta: desc-test1 } rule rule2{ me
patt=re.compile("\s*[\n]*rule.*[\n]*\s*.*{")
results=re.split(r'\s*[\n]*rule.*[\n]*\s*.*{.', buf)
结果不包含列表。但拆分似乎不起作用。
有人能帮忙吗
------------文件内容--------
rule rule1{
meta:
desc-test1
}
rule rule2{
meta:
desc-test2
}
rule rule3{
meta:
desc-test3
}
----文件结束----
预期产出
规则中可以有“规则字符串”。因此,应将一条规则确定为
规则规则名称{**内容可以是任何内容,包括新行词和任何字符串。规则内容将受到大括号的限制。我应该能够将规则提取到列表中。规则[0]应包含规则1及其内容。规则2也是如此
{
的内容后面紧跟着\n
,而没有re.DOTALL的
与\n
不匹配
\s*[\n]*
中,[\n]*
无效,因为\s
已经匹配了\n
应该这样做(
[1://code>在第一条规则
之前丢弃零件)。此问题不清楚,请添加您期望的输出。
results=re.split(r'\s*[\n]*rule.*[\n]*\s*.*{.', buf)
results = re.split(r'\brule\s+', buf)[1:]