我有一个 VHDL 文件,其中包含我要提取的一些段落。一般来说,它看起来像这样:
Declaration 1.
Some codes.
(Following are paragraphs I want to extract)
case (state) is
case body 1
end case;
Declaration 2.
Some codes.
(Following are paragraphs I want to extract)
case (state) is
case body 2
end case;
所以“case body 1”和“case body 2”就是我想要的。“案例(状态)是”和“结束案例”;能配不配,都无所谓。我尝试了一些方法,例如:
f1=open('/home/liuduo/Desktop/f2.vhd')
data=f1.read()
pattern=re.compile('case (state) is[\s\S]*?end case;')
reg=pattern.search(data).group()
或者
pattern=re.compile('(?<=\bcase\b).*?(?=\bend\b)')
reg=pattern.search(data).group()
或者
pattern=re.compile('.*?case(.*?)end.*?')
reg=pattern.search(data).group()
以及借助 Stackflow 中的许多示例的许多其他方法(谢谢!)。但似乎没有任何效果。
我得到的错误是“AttributeError:'NoneType'对象没有属性'group'”,这表明没有任何匹配。我对 Python 很陌生(3 天......)并且在 JAVA 方面的背景很弱,所以 REexp 真的让我很困惑。我想知道是否有人可以帮助我解决这个问题?
太感谢了!
PS如果之前有人问过这个问题,我真的很抱歉,这是在寻找答案数小时后关于 Stackflow 的第一个问题。PLZ帮帮我。