python - 带条件的正则表达式大写单词

标签 python regex

我是正则表达式新手,我不知道如何做到这一点:

Hello this is JURASSIC WORLD shut up Ok

[REVIEW] The movie BATMAN is awesome lol

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

我想到了这个:

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

欢迎任何帮助。

谢谢。

最佳答案

您可以使用否定查找来确保标题不在 [] 范围内

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

  • (?<!\[)消极地看着后面。检查匹配的字符串前面是否没有 [

  • [A-Z ]{2,}匹配 2 个或多个大写字母。

  • (?!\])消极地展望 future 。确保字符串后面不跟随 ]

示例

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

关于python - 带条件的正则表达式大写单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31810001/

相关文章:

python - 给定输入 10,print(sum) 会产生什么输出?

python - 没有通过 'step' 参数或 tf.summary.experimental.set_step() 设置步骤

python - 使用 BeautifulSoup 解析 &lt;style&gt; 标签内的 html 注释

regex - 正则表达式 f#

反转正则表达式的 Rubyish 方式

python - 我无法使用 pip (Windows)

Python多变量赋值困惑

javascript - 从地理位置字符串中提取纬度/经度

r - 计算 r 中一组单词的出现次数

javascript - 是否可以匹配 a/g Javascript 正则表达式其余部分的开头?