繁体   English   中英

有条件的正则表达式大写单词

[英]Regex uppercase words with condition

我是regex的新手,我不知道该怎么做:

你好,我是侏罗纪世界闭嘴了

[评论]电影《蝙蝠侠》真棒哈哈

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

我想到了这一点:

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

任何帮助都将受到欢迎。

谢谢。

您可以使用负面环顾四周功能来确保标题不在[]

\b(?<!\[)[A-Z ]{2,}(?!\])\b
  • \\b匹配单词边界。

  • (?<!\\[)负向后面。 检查匹配的字符串是否不以[

  • [AZ ]{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 ']
>>>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM