条件为

时间:2015-08-04 12:57:46

标签: python regex

我是正则表达式的新手,我无法弄清楚如何执行此操作:

  

您好,这是JURASSIC WORLD闭嘴好的

     

[导读]电影“蝙蝠侠”很棒lol

我需要的是电影的标题。每个句子只有一个。我必须忽略[]之间的单词,因为它不会是电影的标题。

我想到了这个:

^\w([A-Z]{2,})+

欢迎任何帮助。

感谢。

1 个答案:

答案 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 ']
>>>