这构成了开发知识描述语言的爱好个人项目的一部分。 这些我要提取字符串的文本:
begin car part chassis engine wheels begin motorbike part
chassis engine wheels begin motorbike part wheels chassis
engine begin tree part roots branches stem leaves begin light
bulb part spile filament crystal begin coin part corp begin pen
part ball pipe button begin glasses part mount
eyeglasses begin motorbike part chassis engine wheels
所以我希望使用某种类型的正则表达式来获得类似这样的输出:
[ '汽车', '摩托车', '摩托车', '树', 'ligthbulb', '硬币', '笔', '眼镜', '摩托车'] 前列表中的每个单词都是从两个重复单词“begin”和“part”的中间获得的。您没有必要根据列表具有类似于此处所示的输出格式,但我想以某种方式分离上述单词。 非常感谢你的帮助。
答案 0 :(得分:0)
您可以尝试以下正则表达式:
(?<=begin[\s])(.|\n|\r)*?(?=[\s]part)
并在https://regex101.com/r/w4xDbp/2处看到它。
(?<=begin\s)
prepenedet 开始和空格字符(\s
)(.|\n|\r)*?
任何字符的懒惰匹配,包括行终结符(?=\spart)
后跟空白字符,后跟 part 然而,它产生输出
请注意&#34;灯泡的换行符&#34;也匹配。
答案 1 :(得分:0)
我认为这对我来说是最容易解决问题的方法。
re.findall(r'begin (\w+)', text)
# ['car', 'motorbike', 'motorbike', 'tree', 'light', 'coin', 'pen', 'glasses', 'motorbike']