2015-12-03 5 views
2

Использование Sublime Text 3 Я хочу извлечь только слова и выражения в верхнем регистре из текста.Регулярное выражение в соответствии с верхним регистром Выражения и слова

Пример: Привет, мир! Это СОЛНЕЧНЫЙ ДЕНЬ для всех.

Если я использую инструмент найти, я могу извлечь все прописные слова отдельно, используя это регулярное выражение:

\b[A-Z]+\b 

Результатов являются СОЛНЕЧНЫМИ и DAY, но я хотел бы рассмотреть SUNNY DAY в целом, чтобы извлечь корыта инструмент найти, не выходя за простыми словами, как в:

It's SUNNY today. 

ответ

1

Вы можете просто использовать

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

См regex demo

Я добавил (?:\s+[A-Z]+)* в регулярном выражении, чтобы соответствовать 0 или более последовательностей:

  • \s+ - 1 или более пробельных
  • [A-Z]+ - 1 или более символов из A-Z диапазона.

enter image description here

Обратите внимание, что в случае, если вам нужно, чтобы соответствовать Unicode заглавных букв используйте \p{Lu} вместо [A-Z] (он также будет соответствовать акцентированные буквы):

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

Regexper [Illustation] (HTTP: //regexper.com/#\b[AZ]%2B%28%3F%3A\s%2B[AZ]%2B%29*\b) – ceving

+1

Большое спасибо, кажется, работает правильно! – alebordovsky

Смежные вопросы