正则表达式以Unicode格式测试大写字母

时间:2013-10-07 16:12:57

标签: regex

我需要regexp来测试字符串是否包含大写字母。我正在使用以下正则表达式执行[\p{Lu}\p{Lt}],但在使用this tool使用短语'someCapitalLetters'进行测试时,它不会突出显示大写字母,而是突出显示字母'p'和't。

3 个答案:

答案 0 :(得分:1)

似乎工作正常。测试时:

  

Квуйфырреплььатонэмвитюпэраторебузйн,едпырикульарыпудяары   конкыптамшэа。 Атыамыёюзиюварытжямиляквюы,поррооптёонаккузата   нэпэр。 Алёэнюмаппэтырэаккюжамюзэиючю,наманлебырквюандо。 Ут   модопробатужпраэчынтыюм,кувекжбрутээлььэефэндконстятюам,пэр   ытэратвитаэдоктюж。

     

Жолюмоптёонпропрёаывэлад,ючюсъюммопондэрюммандамючэа,тывим   кхоромэльёузпэрчыквюэрёж。 Конгуыадипижкйзыдан,анэожийжквюы   инимёкюж,экзквюотмюкиужкюм。 Анквюотёнвидюнтадолэжкэнспэр。   Едквюэальяквюамволуптариаэаючю,вэлфакэрмодыратиюзйн,ыам   видишчыкончюлатувольуптатибюжыт。 Эюпрёчэнзэретаргюмынтум   эффякиантур。 Адмодумкоррюмпитутквуй,едшэайужтопропрёаы。

     

Минемумжплэндидэатквуй。 Адмалйжанкилльаыкомпрэхэнжамэож,эним   номинавиэимыа。 Мыаэюаюдиамфакилизокюррырэт。 Унюмаргюмынтум   конкльюдатюрквюэнохаж,мыазальынатюмэи。 Эжтйнльаорыытомйттам   дёзсэнтёаш。 Эюпэрграэкиеракюндйаянтэрэсщэт,мюкиужоффэндйтэкз   кюм。

匹配为:К А А У Ж К А Е {{1} } Э А М А М У Э

regex101 demo

注意:我在这里启用了unicode修饰符。

另外,我忘了提到regexpal的正则表达式是基于Javascript,它不支持符号Э(这是你应该提到正在使用正则表达式的语言的另一个原因)。

答案 1 :(得分:0)

此正则表达式匹配(整个)包含大写字母的输入:

^(?=.*[A-Z]).*$

此正则表达式匹配大写字母:

[A-Z]

您的正则表达式使用的是posix表达式,但您的语言(未指定)可能不支持它。

答案 2 :(得分:0)

在基于Java的reg-ex测试器上使用[:upper:]或[\ p {Lu}]时得到类似的结果

http://regexpal.com/

必须是正则表达式引擎的限制吗?

尝试[A-Z]?