匹配大写表达式和单词的正则表达式

Regex to match uppercase Expressions and Words

使用 Sublime Text 3 我只想从文本中提取大写单词和表达式。

示例: 你好世界!这对所有人来说都是晴天。

如果我使用查找工具,我可以使用这个正则表达式单独提取所有大写单词:

\b[A-Z]+\b

结果是 SUNNY 和 DAY,但我想把 SUNNY DAY 作为一个整体来考虑,通过查找工具提取,而不留下简单的单词,例如:

It's SUNNY today.

您可以简单地使用

\b[A-Z]+(?:\s+[A-Z]+)*\b

regex demo

我在正则表达式中添加了 (?:\s+[A-Z]+)* 以匹配 0 个或多个序列:

  • \s+ - 1 个或更多空格
  • [A-Z]+ - A-Z 范围内的 1 个或多个字符。

请注意,如果您需要匹配 Unicode 大写字母,请使用 \p{Lu} 而不是 [A-Z](它也会匹配重音字母):

\b\p{Lu}+(?:\s+\p{Lu}+)*\b