2014-02-20 3 views
0

Я ищу регулярное выражение, которое соответствует слову с более чем 1 заглавной буквы. Расположение прописных букв может быть где угодно.Regex для определения слова с более чем 1 заглавной буквы

Она должна соответствовать:

ABc 
aBC 
ABC 

Он не должен соответствовать:

Abc 
aBc 
abC 
abc 
+1

Какой двигатель регулярных выражений? Вы считаете, что «É» - это письмо? Весь ваш ввод состоит только из одного слова или вы хотите найти слова в более широком предложении? Должен ли 'AbC' соответствовать? Ваша проблема еще не определена ... –

+0

Только обычные английские буквы. – smwikipedia

ответ

4

Предполагая, что вы хотите только буквенно-цифровые символы ("слово") символов:

\w*[A-Z]\w*[A-Z]\w* 

В \ ш являются все точки для любого буквенно-цифрового символа (или, если точнее, подчеркивание), а [AZ] соответствует любой заглавной букве, предполагая вы используете обычные буквы ascii. Это регулярное выражение будет соответствовать строке с не менее 2 заглавными буквами, но любое число из них.

Если слова может быть что угодно, а не только содержащий «слово» символы, вы можете использовать

.*[A-Z].*[A-Z].* 

И если вы хотите, чтобы ограничить его в точности множество «нормальных английских букв:»

[a-z]*[A-Z][a-z]*[A-Z][a-z]* 
+1

'[A-Z]. * [A-Z]' достаточно. Нет необходимости проверять что-либо до и после. – Toto

+0

@ M42 как насчет "aBBa"? Конечно, это будет соответствовать «BB», но я думаю, что он хочет соответствовать всему слову. – vroomfondel

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