2014-09-18 10 views
1

Есть ли какой-либо способ использования Regex.Match (.net) .net, если строка содержит только капители?Regex.Match Uppercase

Я работаю в приложении (поэтому у меня нет доступа к коду), что позволяет мне видеть, совпадает ли поле с определенным шаблоном регулярного выражения (с помощью Regex.Match() за сценой). Поэтому я хочу использовать это для разработки, если строка является только столицей.

Спасибо!

+0

Почему бы не использовать/^ [A-Z] + $/ – Grice

+0

@JGrice Это будет работать только для ASCII. '\ p {Upper}', для поддерживающих его двигателей Regex будет работать для 1483 букв с верхним обложкой во многих алфавитах. Ваше предложение пропустит только 1457 из них. ;) Это задает вопрос: @ Рихард, вам нужно поддерживать Unicode или только ASCII? – DavidO

+0

@DavidO .net Regex.match() support \ p {Upper}? Не удалось найти документацию по нему в результате быстрого поиска. – Grice

ответ

4

Используйте это как строку соответствия только заглавными буквами и без специальных символов, включая пробел.

^[A-Z]*$ 

Для обеспечения специальных символов (содержит только символы не нижний регистр):

^[^a-z]*$ 
+0

Shocking ... только что выяснили у провайдера, что RegexOptions.IgnoreCase установлен, поэтому почему ничего не сработало. Извините всех. Но для кого-либо еще в будущем я поставил бы ответ Джеффри как правильный. – Richard

2

Вы можете использовать следующее регулярное выражение. Это будет соответствовать любой прописной букве с нижним регистром.

^\p{Lu}+$ 

Или вы можете просто совместить только буквы в верхнем регистре.

^[A-Z]+$ 
Смежные вопросы