Поэтому я хочу получить все слова в верхнем регистре из строки с помощью регулярного выражения, но я хочу, чтобы слова были сгруппированы, и между ними будет один пробел. Я приведу пример, чтобы прояснить, что я хочу. В словах, которые я хочу получить, будут все буквы в верхнем регистре.
«Это СТРОКА ЗАПИСНЫМИ буквами, А ЭТО ДРУГАЯ».
Я хотел бы знать, могу ли я уловить такие слова:
Первый элемент: ЗАПИСНЫЕ СТРОКИ
Второй пункт: А ЭТО ДРУГОЕ
Я привел пример вывода, который мне нужен, потому что я не знал, как лучше объяснить @Magnus, но я вижу, что другие поняли мою проблему и дали мне то, что я хочу
[A-Z\d]{2,}[ ][A-Z\d]{2,}\b
- минимум 2 буквы, два слова, разделенных пробелом
[A-Z\d]{1,}[ ][A-Z\d]{1,}\b
- минимум 1 заглавное двухбуквенное слово, разделенное пробелом
Я думаю, что нашел решение "\ b ([AZ]) {3,} [^ / s] ([AZ]) {3,} ([^ / s])?» (([AZ]) {3, })? \ b ". Это мое регулярное выражение, которое дает мне то, что я хочу
но теперь я хочу сделать первые 2 слова обязательными
да, я думаю, что если у меня есть «У меня есть WORD WORD», я хочу взять «WORD WORD», но если у меня есть «I have just WORD», в этом случае я не хочу получать «WORD». Надеюсь, мое объяснение в порядке.
@Rubyen "[A-Z \ d] {2,} [] [A-Z \ d] {2,} \ b" это в соответствии с вашим сценарием WORD WORD
Я не эксперт по регулярным выражениям, но, может быть, это сработает?
\b(?! )[ A-Z]+(?<! )\b
Вы можете заменить {1,}
на +
.
Отлично, обновил свой ответ
По чему сгруппированы?