我是正则表达式的新手,我无法弄清楚如何执行此操作:
您好,这是JURASSIC WORLD闭嘴好的
[导读]电影“蝙蝠侠”很棒lol
我需要的是电影的标题。每个句子只有一个。我必须忽略[]之间的单词,因为它不会是电影的标题。
我想到了这个:
^\w([A-Z]{2,})+
欢迎任何帮助。
感谢。
答案 0 :(得分:5)
您可以使用否定外观来确保标题不在[]
\b(?<!\[)[A-Z ]{2,}(?!\])\b
\b
匹配字边界。
(?<!\[)
背后的负面看法。检查匹配的字符串是否前面没有[
[A-Z ]{2,}
匹配2个或更多大写字母。
(?!\])
负面展望。确保字符串后面没有]
示例强>
>>> string = """Hello this is JURASSIC WORLD shut up Ok
... [REVIEW] The movie BATMAN is awesome lol"""
>>> re.findall(r'\b(?<!\[)[A-Z ]{2,}(?!\])\b', string)
[' JURASSIC WORLD ', ' BATMAN ']
>>>