A tradução do artigo foi preparada especificamente para os alunos do curso "Desenvolvedor C #" .
A classe Regex implementa expressĂ”es regulares em C #. Neste artigo, vocĂȘ aprenderĂĄ como usar o C # Regex para validar vĂĄrias entradas do usuĂĄrio.Regex em C # implementa expressĂ”es regulares. A classe C # Regex oferece mĂ©todos e propriedades para analisar texto grande, a fim de procurar padrĂ”es de caracteres. Neste artigo, vocĂȘ aprenderĂĄ como usar a classe .NET Regex em C #.
ExpressÔes regulares
Uma expressĂŁo regular Ă© usada para verificar se uma sequĂȘncia corresponde a um padrĂŁo. Uma expressĂŁo regular (expressĂŁo regular ou regex ou regexp) Ă© uma sequĂȘncia de caracteres que define um padrĂŁo. Um padrĂŁo pode consistir em literais, nĂșmeros, caracteres, operadores ou construçÔes. O padrĂŁo Ă© usado para encontrar correspondĂȘncias em uma sequĂȘncia ou arquivo.
ExpressĂ”es regulares sĂŁo frequentemente usadas ao verificar entradas, analisar e localizar cadeias. Por exemplo, verificando uma data de nascimento vĂĄlida, nĂșmero de segurança social, nome completo, no qual o nome e o sobrenome sĂŁo separados por vĂrgula, pesquisando o nĂșmero de ocorrĂȘncias de uma substring, substituindo substrings, formatos de data, formatos de email vĂĄlidos, formato de moeda e assim por diante.
Regex de classe
No .NET, a classe Regex representa um mecanismo de regex. Ele pode ser usado para analisar rapidamente grandes quantidades de texto para encontrar padrĂ”es de caracteres especĂficos, extrair, editar, substituir ou excluir substrings de texto e adicionar as strings extraĂdas Ă coleção para gerar um relatĂłrio.
A classe Regex Ă© definida no espaço para nome System.Text.RegularExpressions. O construtor da classe Regex usa como parĂąmetro uma sequĂȘncia de modelo junto com outros parĂąmetros opcionais.
O seguinte trecho de código cria uma expressão regular a partir de um padrão. Aqui, o padrão corresponde a uma palavra que começa com a letra "M".
O seguinte fragmento de código contém um texto longo com os nomes dos autores que precisam ser analisados.
O mĂ©todo Matches Ă© usado para encontrar todas as correspondĂȘncias em uma expressĂŁo regular e retorna um MatchCollection.
O prĂłximo trecho de cĂłdigo passa por uma coleção de correspondĂȘncias.
Aqui estĂĄ o cĂłdigo completo:
No exemplo acima, o código procura o caractere "M". Mas e se a palavra começar com "m". O seguinte trecho de código usa o parùmetro
RegexOptions.IgnoreCase
para que o Regex não faça
RegexOptions.IgnoreCase
entre maiĂșsculas e minĂșsculas.
Substituindo Vårios Espaços pelo Regex
O método
Regex.Replace()
Ă© usado para substituir a sequĂȘncia correspondente por uma nova. O exemplo a seguir procura vĂĄrios espaços em uma sequĂȘncia com uma Ășnica.
O seguinte trecho de código substitui os espaços por '-'.
string CleanedString = Regex.Replace(badString, "\\s+", "-");
Dividindo uma sequĂȘncia em caracteres usando o Regex
No exemplo a seguir, o padrão de expressão regular [az] + e o método
Regex.Split()
sĂŁo usados ââpara dividir uma sequĂȘncia em caracteres, sem distinção entre
Regex.Split()
.
ExpressÔes regulares em c #
ExpressĂ”es regulares sĂŁo o padrĂŁo de correspondĂȘncia de padrĂ”es para analisar e alterar cadeias de caracteres e permitem ao usuĂĄrio expressar como um programa de computador deve procurar o padrĂŁo especificado no texto e, em seguida, o que deve fazer quando cada correspondĂȘncia for encontrada com o padrĂŁo fornecido. Ăs vezes, eles sĂŁo abreviados como "regex". Eles sĂŁo uma maneira poderosa de encontrar e modificar seqĂŒĂȘncias de caracteres que assumem um formato especĂfico.
Aqui estå um exemplo simples de código C # que mostra como as expressÔes regulares são usadas.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; namespace RegularExpression1 { class Program { static void Main(string[] args) { Regex r = new Regex(@"^\+?\d{0,2}\-?\d{4,5}\-?\d{5,6}");
Aqui estå uma explicação detalhada de expressÔes regulares e seu uso em C # e .NET:
ExpressÔes regulares em c #Regex para verificação de e-mail
Para testar vårios endereços de email, podemos usar as seguintes expressÔes regulares. Separamos os endereços usando o delimitador ';'
^((\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)\s*[;]{0,1}\s*)+$
Se vocĂȘ deseja usar o delimitador ',' use o seguinte
^((\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)\s*[,]{0,1}\s*)+$
e se vocĂȘ deseja usar os dois delimitadores ',' e ';' entĂŁo use isso
^((\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)\s*[;,.]{0,1}\s*)+$
Assim, usando a expressĂŁo regular acima, vocĂȘ pode verificar um ou vĂĄrios endereços ao mesmo tempo.
Saiba mais aqui:
Regex para verificar vårios endereços de email .
Validando entrada do usuårio com expressÔes regulares
Este artigo explica como usar expressÔes regulares (a classe Regex do espaço para nome System.Text.RegularExpressions) em C # e .NET.
Podemos usar o método Regex.Match, que recebe entrada e uma expressão regular e retorna sucesso se
if (!Regex.Match(firstNameTextBox.Text, "^[AZ][a-zA-Z]*$").Success) {} if (!Regex.Match(addressTextBox.Text, @"^[0-9]+\s+([a-zA-Z]+|[a-zA-Z]+\s[a-zA-Z]+)$").Success) if (!Regex.Match(cityTextBox.Text, @"^([a-zA-Z]+|[a-zA-Z]+\s[a-zA-Z]+)$").Success) if (!Regex.Match(stateTextBox.Text, @"^([a-zA-Z]+|[a-zA-Z]+\s[a-zA-Z]+)$").Success) if (!Regex.Match(zipCodeTextBox.Text, @"^\d{5}$").Success) { if (!Regex.Match(phoneTextBox.Text, @"^[1-9]\d{2}-[1-9]\d{2}-\d{4}$").Success)
Saiba mais aqui:
Validando entrada do usuårio com expressÔes regularesDividir string usando Regex.split (regex) em C #
Nesta parte, aprenderemos como quebrar uma string usando RegEx em C #. Regex quebra uma cadeia de caracteres com base em um padrĂŁo. Ele processa o delimitador especificado como um modelo. Ă por isso que o Regex Ă© melhor que o string.Split. Aqui estĂŁo alguns exemplos de como quebrar uma string usando o Regex em C #. Vamos escrever o cĂłdigo.
Para usar o Regex para dividir uma sequĂȘncia, adicione os seguintes espaços para nome.
using System; using System.Text.RegularExpressions; using System.Collections.Generic;
Exemplo 1:Separe os nĂșmeros das strings usando o Regex.
string Text = "1 One, 2 Two, 3 Three is good."; string[] digits = Regex.Split(Text, @"\D+"); foreach (string value in digits) { int number; if (int.TryParse(value, out number)) { Console.WriteLine(value); } }
O cĂłdigo acima quebra a cadeia usando \ D + e gera os nĂșmeros iterando sobre o resultado.
Saiba mais aqui:
Dividir string usando expressÔes regulares em C #Substituir caracteres especiais da cadeia de caracteres por regex
Nesta parte, mostrarei como substituir caracteres especiais por expressÔes regulares em C #.
Se vocĂȘ possui uma sequĂȘncia com caracteres especiais e deseja removĂȘ-los ou substituĂ-los, pode usar uma expressĂŁo regular para isso.
Use o seguinte cĂłdigo:
Regex.Replace(your String, @"[^0-9a-zA-Z]+", "")
Este cĂłdigo excluirĂĄ todos os caracteres especiais, mas se vocĂȘ nĂŁo desejar excluir alguns caracteres especiais, por exemplo, a vĂrgula "," e os dois pontos ":" - faça as seguintes alteraçÔes:
Regex.Replace(Your String, @"[^0-9a-zA-Z:,]+", "")
Da mesma forma, vocĂȘ pode fazer alteraçÔes de acordo com seus requisitos.
Nota:
Deve-se notar que expressĂ”es regulares nĂŁo sĂŁo uma panacĂ©ia para toda pequena manipulação de string. Se vocĂȘ precisar de uma anĂĄlise simples fornecida pela classe String ou por outras classes, tente usĂĄ-lo.
Para leitura adicional
Se vocĂȘ nĂŁo conhece expressĂ”es regulares, recomendo a leitura deste artigo,
Introdução às expressÔes regulares .
Aqui estĂĄ outro artigo: "
Usando expressÔes regulares em c # "