Partilhar via


Classes de Caracteres

Uma classe de caracteres representa um conjunto de caracteres que pode fazer a correspondência entre uma sequência de caracteres de entrada.Combina caracteres literais, caracteres de escape e classes de caracteres para formar uma expressão regular padrão.

Classes de caracteres definem um conjuntos de caracteres.Algumas classes de caracteres são equivalentes a um ou mais valores da categoria geral Unicode ou blocos Unicode.Uma categoria Unicode geral define a abrangente classificação de um caractere; ou seja, se o caractere é tipo letra, dígito decimal, separador, símbolo matemático, pontuação e assim por diante.Por exemplo, a categoria geral Lu representa "Letra, Maiúscula" e a categoria Smrepresenta "Símbolo, Matemática".Para obter mais informações, consulte Categorias Suportadas Unicode Geral .

Um bloco Unicode é um intervalo nomeado pontos de código Unicode.O .NET Framework fornece um conjunto de blocos nomeados com nomes derivados de blocos Unicode.Por exemplo, o .NET Framework fornece o bloco nomeado IsBasicLatinque corresponde ao bloco Basic Latin e contém caracteres Unicode desde U + 0000 a U + 007F.Para obter mais informações, consulte Blocos Nomeados Suportados .

O .NET Framework suporta classe caractere subtração de expressões, que permite a você definir um conjunto de caracteres como resultado de exclusão de uma classe de caractere de outra classe de caractere.Para obter mais informações, consulte Classe de Caractere Subtração .

Sintaxe da Classe de Caractere

A tabela a seguir resume as classes de caracteres e sua sintaxe.

Classe de caractere

Descrição

[character_group]

(Caractere positivo grupo). Correponde o caractere especificado com qualquer caractere grupo.

O caractere grupo consiste em um ou mais caracteres literais, caracteres escape,caracteres intervalo ou classes de caracteres que são concatenados.

Por exemplo, para especificar todas as vogais, use [aeiou]. Para especificar todos os caracteres dígito decimal, use o código [\p{P}\d] e pontuação.

[^character_group]

(Caractere grupo negativo). Correponde qualquer caractere não especificado no caractere grupo.

O caractere grupo consiste em um ou mais caracteres literais, caracteres escape,caracteres intervalo ou classes de caracteres que são concatenados.O caractere à esquerda circunflexo (^)é obrigatório e indica que o caractere grupo é um caractere grupo negativo no lugar de um caractere grupo positivo.

Por exemplo, para especificar todos os caracteres, exceto as vogais, use [^aeiou]. To specify all characters except punctuation and decimal digit characters, use [^\p{P}\d].

[firstCharacter-lastCharacter]

Intervalos de Caracteres Corresponde qualquer caractere a um intervalo de caracteres.

Um intervalo de caracteres é uma série contígua de caracteres definidos, especificando o primeiro caractere na série, um hífen (-) , e o último caractere na série.Dois caracteres são contíguos se eles tiverem pontos de código Unicode adjacentes.Dois ou mais intervalos de caracteres podem ser concatenados.

Por exemplo, para especificar o intervalo de dígitos de ' 0 ' a '9', o intervalo de letras minúsculas de 'a ' a ' f' e o intervalo de letras maiúsculas 'a ' a' f', use [0-9a-fA-F].

.

(O caractere periódico.) Corresponde qualquer caractere, exceto \n .Se modificado pela opção Singleline, um caractere ponto corresponde a qualquer caractere.Para obter mais informações, consulte Opções de Expressões Regulares.

Note que um caractere periódico em um caractere grupo positivo ou negativo (um periodo dentro de colchetes) é tratado como um caractere literal peródico e não uma classe caractere.

\p {nome}

Corresponde qualquer caractere na categoria geral Unicode ou bloco nomeado especificado por Name (por exemplo, Ll,Nd,Z,IsGreek e IsBoxDrawing).

\P {nome}

Corresponde qualquer caractere que não está na categoria geral Unicode ou bloco nomeado especificada em Nome .

\w

Corresponde qualquer caractere palavra.Equivalente as categorias [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}\p{Lm}] Unicode gerais.Se estiver ECMAScript-compatível com o comportamento especificado com a opção ECMAScript,\w é equivalente a [a-zA-Z_0-9].

\W

Corresponde qualquer caractere que não seja palavra.Equivalente as categorias [^\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}\p{Lm}] Unicode gerais.Se for especificado comportamento compatível com ECMAScript com o ECMAScript opção, \W é equivalente a [^a-zA-Z_0-9].

\s

Corresponde qualquer caractere de espaço em branco.Equivalente as categorias gerais Unicode de sequências de escape[\f\n\r\t\v\x85\p{Z}].If ECMAScript-compliant behavior is specified with the ECMAScript option, \s is equivalent to [ \f\n\r\t\v].

\S

Corresponde qualquer caractere de espaço em branco.Equivalente as categorias gerais Unicode de sequências de escape[^\f\n\r\t\v\x85\p{Z}].If ECMAScript-compliant behavior is specified with the ECMAScript option, \S is equivalent to [^ \f\n\r\t\v].

\d

Corresponde qualquer dígito decimal.Equivalente a \p{Nd} para Unicode e [0-9] para não Unicode, comportamento ECMAScript.

\D

Correspode qualquer caractere não dígito.Equivalente a \P{Nd} para Unicode e [^0-9] para não Unicode, comportamento ECMAScript.

Categorias Suportadas Unicode gerais

Unicode define as categorias gerais e descrições listadas na tabela a seguir.Para obter mais informações, consulte os subtópicos de "Formato de arquivo UCD" e "Valores de categoria geral" noBanco de dados de caractere Unicode.

Category (Categoria)

Descrição

Lu

Letra, Maiúsculas

Ll

Letra, Minúsculas

Lt

Letra, Título

Lm

Letra, Modificador

Lo

Letra, Outro

Mn

Marcar, Não espaçado

Mc

Marca, Espaçamento Combinando

Me

Marcar, Confinar

Nd

Número, Dígito Decimal

Nl

Número, Letra

No

Número, Outros

Pc

Pontuação, Conectores

Pd

Pontuação, Tracejado

Ps

Pontuação, Abrir

Pe

Pontuação, Fechar

Pi

Pontuação, Aspas Iniciais (talvez se comportem como Ps ou Pe, dependendo do uso)

Pf

Pontuação, Aspas Finais (talvez se comportem como Ps ou Pe, dependendo do uso)

Po

Pontuação, Outros

Sm

Símbolo, Matemática

Sc

Símbolo, Moeda

Sk

Símbolo, Modificador

So

Símbolo, Outros

Zs

Separador, Espaço

Zl

Separador, Linha

Zp

Separador, Parágrafo

Cc

Outro, Controle

Cf

Outro, Formatar

Cs

Outro, Substituir

Co

Outros, uso Particular

Cn

Outros, Não Atribuídos (nenhum caractere têm esta propriedade)

A .NET Framework fornece outras categorias que representam um conjunto de categorias de caracteres Unicode, conforme mostrado na tabela a seguir.

Category (Categoria)

Representa

C

(Todos os caracteres de controle) Cc, Cf, Cs, Co e Cn.

L

(Todas as letras) Lu, Ll, Lt, Lm e Lo.

M

(Todas as marcas diacrítico) Mn, Mc e Me.

N

(Todos os números) Nd, Nl e No.

P

(Todas Pontuações) Pc, Pd, Ps, Pe, Pi), Pf, e Po.

S

(Todos os números) Sm, Sc e Sk, eSo.

Z

(Todos os separadores) Zs, Zl e Zp.

Blocos Nomeados Suportados

A .NET Framework fornece os blocos nomeados listados na tabela a seguir.O conjunto de blocos nomeados suportados é baseado na Unicode 4.0 e Perl 5.6.

Intervalo de ponto de código

Nome do bloco

0000 - 007F

IsBasicLatin

0080 - 00FF

IsLatin-1Supplement

0100 - 017F

IsLatinExtended-A

0180 - 024F

IsLatinExtended-B

0250 - 02AF

IsIPAExtensions

02B0 - 02FF

IsSpacingModifierLetters

0300 - 036F

IsCombiningDiacriticalMarks

0370 - 03FF

IsGreek

- ou -

IsGreekandCoptic

0400 - 04FF

IsCyrillic

0500 - 052F

IsCyrillicSupplement

0530 - 058F

IsArmenian

0590 - 05FF

IsHebrew

0600 - 06FF

IsArabic

0700 - 074F

IsSyriac

0780 - 07BF

IsThaana

097F - 0900

IsDevanagari

0980 - 09FF

IsBengali

0A00 - 0A7F

IsGurmukhi

0A80 - 0AFF

IsGujarati

0B00 - 0B7F

IsOriya

0B80 - 0BFF

IsTamil

0C00 - 0C7F

IsTelugu

0C80 - 0CFF

IsKannada

0D00 - 0D7F

IsMalayalam

0D80 - 0DFF

IsSinhala

0E00 - 0E7F

IsThai

0E80 - 0EFF

IsLao

0F00 - 0FFF

IsTibetan

1000 - 109F

IsMyanmar

10A0 - 10FF

IsGeorgian

1100 - 11FF

IsHangulJamo

1200 - 137F

IsEthiopic

13A0 - 13FF

IsCherokee

1400 - 167F

IsUnifiedCanadianAboriginalSyllabics

1680 - 169F

IsOgham

16A0 - 16FF

IsRunic

1700 - 171F

IsTagalog

1720 - 173F

IsHanunoo

1740 - 175F

IsBuhid

1760 - 177F

IsTagbanwa

1780 - 17FF

IsKhmer

1800 - 18AF

IsMongolian

1900 - 194F

IsLimbu

1950 - 197F

IsTaiLe

19E0 - 19FF

IsKhmerSymbols

1D00 - 1D7F

IsPhoneticExtensions

1E00 - 1EFF

IsLatinExtendedAdditional

1F00 - 1FFF

IsGreekExtended

2000 - 206F

IsGeneralPunctuation

2070 - 209F

IsSuperscriptsandSubscripts

20A0 - 20CF

IsCurrencySymbols

20D0 - 20FF

IsCombiningDiacriticalMarksforSymbols

- ou -

IsCombiningMarksforSymbols

2100 - 214F

IsLetterlikeSymbols

2150 - 218F

IsNumberForms

2190 - 21FF

IsArrows

2200 - 22FF

IsMathematicalOperators

2300 - 23FF

IsMiscellaneousTechnical

2400 - 243F

IsControlPictures

2440 - 245F

IsOpticalCharacterRecognition

2460 - 24FF

IsEnclosedAlphanumerics

2500 - 257F

IsBoxDrawing

2580 - 259F

IsBlockElements

25A0 - 25FF

IsGeometricShapes

2600 - 26FF

IsMiscellaneousSymbols

2700 - 27BF

IsDingbats

27C0 - 27EF

IsMiscellaneousMathematicalSymbols-A

27F0 - 27FF

IsSupplementalArrows-A

2800 - 28FF

IsBraillePatterns

2900 - 297F

IsSupplementalArrows-B

2980 - 29FF

IsMiscellaneousMathematicalSymbols-B

2A00 - 2AFF

IsSupplementalMathematicalOperators

2B00 - 2BFF

IsMiscellaneousSymbolsandArrows

2E80 - 2EFF

IsCJKRadicalsSupplement

2F00 - 2FDF

IsKangxiRadicals

2FF0 - 2FFF

IsIdeographicDescriptionCharacters

3000 - 303F

IsCJKSymbolsandPunctuation

3040 - 309F

IsHiragana

30A0 - 30FF

IsKatakana

3100 - 312F

IsBopomofo

3130 - 318F

IsHangulCompatibilityJamo

3190 - 319F

IsKanbun

31A0 - 31BF

IsBopomofoExtended

31F0 - 31FF

IsKatakanaPhoneticExtensions

3200 - 32FF

IsEnclosedCJKLettersandMonths

3300 - 33FF

IsCJKCompatibility

3400 - 4DBF

IsCJKUnifiedIdeographsExtensionA

4DC0 - 4DFF

IsYijingHexagramSymbols

4E00 - 9FFF

IsCJKUnifiedIdeographs

A000 - A48F

IsYiSyllables

A490 - A4CF

IsYiRadicals

AC00 - D7AF

IsHangulSyllables

D800 - DB7F

IsHighSurrogates

DB80 - DBFF

IsHighPrivateUseSurrogates

DC00 - DFFF

IsLowSurrogates

E000 - F8FF

IsPrivateUse

F900 - FAFF

IsPrivateUseArea

FB00 - FB4F

IsCJKCompatibilityIdeographs

FB50 - FDFF

IsAlphabeticPresentationForms

FE00 - FE0F

IsArabicPresentationForms-A

FE20 - FE2F

IsVariationSelectors

FE30 - FE4F

IsCombiningHalfMarks

FE50 - FE6F

IsCJKCompatibilityForms

FE70 - FEFF

IsSmallFormVariants

FF00 - FFEF

IsArabicPresentationForms-B

FFF0 - FFFF

IsHalfwidthandFullwidthForms

Subtração de classe de caractere

Uma classe de caractere define um conjunto de caracteres.A subtração de classe de caractere fornece um conjunto de caracteres que é o resultado da exclusão dos caracteres em uma classe de caractere a partir de outra classe de caractere.

A subtração de classe de caractere tem a seguinte forma:

[base_group-[excluded_group ]]

Os colchetes ([]) e hífen (-) são obrigatórios.O grupo_base é um grupo de caracteres positivo ou negativo conforme descrito na tabela Sintaxe de Classes de Caracteres.O componente grupo_excluído é outro grupo de caracteres positivo ou negativo, ou outra expressão de subtração de classe de caracteres (ou seja, você pode aninhar expressões de subtração classe de caractere).

Por exemplo, suponha que você tenha um grupo base que consiste no intervalo de caracteres de 'A ' a ' Z'.Para definir o conjunto de caracteres do qual o grupo base consiste, exceto pelo caractere 'm', utilize[a-z-[m]].Para definir o conjunto de caracteres do qual o grupo base consiste, exceto pelo conjunto de caracteres 'd', 'j', e 'p', utilize [a-z-[djp]].Para definir o conjunto de caracteres do qual o grupo base consiste, exceto pelo intervalo de 'm' a 'p', utilize [a-z-[m-p]].

Considere a expressão de subtração de classe de caractere aninhada, [a-z-[d-w-[m-o]]].A expressão é calculada do intervalo de caractere mais interno para fora.Primeiro, o intervalo de caracteres de 'm' a 'o' é subtraído do intervalo de caractere de 'd' a 'w', o que produz o conjunto de caracteres de 'd' a 'l' e 'p' por' w'.Esse conjunto, em seguida, é subtraído do intervalo de caracteres de 'a ' a ' z', que produz o conjunto de caracteres, [abcmnoxyz].

Você pode usar qualquer classe de caractere com subtração de classes de caractere.Para definir o conjunto de caracteres que consiste em todos os caracteres Unicode de \u0000 através de \uFFFF exceto caracteres de espaço em branco (\s), os caracteres no (categoria geral de pontuação\p{P}), os caracteres a IsGreek () nomeado bloco\p{IsGreek}), e use o caractere de controle Unicode NEXT linha (\x85) [\u0000-\uFFFF-[\s\p{P}\p{IsGreek}\x85]].

Escolha classes de caracteres para uma expressão de subtração de classes de caractere que produzirá resultados utéis.Evite uma expressão que gere um conjunto de caracteres vazio, que não podem corresponder a nada, ou uma expressão que é equivalente ao grupo base original.Por exemplo, o conjunto vazio é o resultado da expressão [\p{IsBasicLatin}-[\x00-\x7F]], que subtrai todos os caracteres da categoria geral IsBasicLatin.Da mesma forma, o grupo base original é o resultado da expressão [a-z-[0-9]].Isso ocorre porque o grupo base, que é o intervalo de caracteres de letras de 'a ' a 'z', não contém quasquer caracteres no grupo excluído, que é o intervalo de caracteres de dígitos de ' 0 ' a '9'.

Observe que Expressões regulares Esquema XML possui suporte semelhante para subtração de classes de caractere.

Consulte também

Referência

GetUnicodeCategory

Opções de expressões regulares

Outros recursos

Elementos de linguagem das expressões regulares