【问题标题】:Regex to match uppercase Expressions and Words正则表达式匹配大写表达式和单词
【发布时间】:2015-12-03 12:30:22
【问题描述】:
使用 Sublime Text 3 我只想从文本中提取大写单词和表达式。
示例:
你好世界!这是一个阳光明媚的日子。
如果我使用查找工具,我可以使用这个正则表达式分别提取所有大写单词:
\b[A-Z]+\b
结果是 SUNNY 和 DAY,但我想将 SUNNY DAY 作为一个整体来考虑,以便通过查找工具进行提取,而不会留下简单的单词,例如:
It's SUNNY today.
【问题讨论】:
标签:
regex
sublimetext2
sublimetext3
【解决方案1】:
你可以简单地使用
\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