【发布时间】:2021-06-17 09:37:59
【问题描述】:
我正在尝试解析文本以提取所需的字符串。我在regex 中遗漏了一些东西,有人可以帮我找出这里的问题吗?
这是我的脚本:
import re
a = """
block1
#(/*AUTOINSTPARAM*/
// Parameters
.THREE (3), // comment
.TWO (2), // comment
.ONE (1)) // comment
inst1
(/*AUTOINST*/
// extra
// output
block2
#(/*AUTOINSTPARAM*/
// Parameters
.THREE (3), // comment
.TWO (2), // comment
.ONE (1)) // comment
inst2
(/*AUTOINST*/
// extra
// output
"""
op = re.findall(r'(\w+)\s*(#\(.*\))?.*?(\w+)\s*\(', a, re.MULTILINE|re.DOTALL)
for i in op:
print(i[0],i[2])
这是输出:
('block1', 'inst2')
预期输出:
('block1', 'inst1')
('block2', 'inst2')
更新: 尝试测试与接受的答案相同的正则表达式的以下输入:
import re
a = """
except_check
#(
.a (m),
.b (w),
.c (x),
.d (1),
.e (1)
)
data_check
(// Outputs
abc
#(
.a (b::c)
)
mask
(/*AUTOINST*/
"""
op = re.findall(r'^\s*(\w+)\s*$\n(?:^\s*[#/.].*$\n)*^\s*(\w+)\s*\(', a, re.MULTILINE)
for i in op:
print(i)
它没有返回任何东西。它应该返回以下内容:
('except_check', 'data_check')
('abc', 'mask')
【问题讨论】:
-
如果您有新问题,请提出新问题,或者如果您接受的答案不可接受,则不接受。
标签: python python-3.x regex python-2.7