【发布时间】:2021-06-20 11:31:55
【问题描述】:
我的正则表达式似乎没有按预期工作,有人可以帮我解决它吗?
import re
a = """
xyz # (.C (0),
.H (1)
)
mv [F-1:0] (/*AUTOINST*/
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*[^\w\s].*$\n)*^\s*(\w+)\s*\(', a, re.MULTILINE)
for i in op:
print(i)
这是我得到的输出:
('except_check', 'data_check')
('abc', 'mask')
这是预期的输出:
('xyz', 'mv')
('except_check', 'data_check')
('abc', 'mask')
不知何故,正则表达式不适用于第一个输入块,但适用于其他两个输入块。
【问题讨论】:
-
好吧,你的第一个块中还有
[F-1:0],这在你的正则表达式中没有考虑。
标签: python python-3.x regex python-2.7