【发布时间】:2012-01-01 22:16:45
【问题描述】:
我想要一个正则表达式来查找“包裹”在“HEAD or HEADa”和“HEAD”之间的文本。也就是说,我可能有一个以第一个单词开头的文本为 HEAD 或 HEADa,并且后面的“头”属于 HEAD 类型。
HEAD\n\n text...text...HEAD \n\n text....text HEAD\n\n text....text .....HEADa\n\n text...text...HEAD \n\n text....text HEAD\n\n text....text .....
我只想捕获“头”之间的文本,因此我有一个正则表达式,带有向后看和向前看的表达式来寻找我的“头”。我有以下正则表达式:
var = "HEADa", "HEAD"
my_pat = re.compile(r"(?<=^\b"+var[0]+r"|"+var[1]+r"\b) \w*\s\s(.*?)(?=\b"+var[1] +r"\b)",re.DOTALL|re.MULTILINE)
但是,当我尝试执行此正则表达式时,我收到一条错误消息,指出我在后视表达式中不能有可变长度。这个正则表达式有什么问题?
【问题讨论】:
-
感谢 Chris Morgan,确实更容易阅读
-
顺便说一句,您也应该接受其他问题的答案。