Corresponder a um padrão usando o Visual C# e expressões regulares
Este artigo passo a passo apresenta como criar e usar expressões regulares para determinar se as cadeias de caracteres correspondem a determinados padrões.
Versão original do produto: Visual C#
Número de KB original: 308252
Resumo
Expressões regulares permitem uma análise fácil e a correspondência de cadeias de caracteres com um padrão específico. Usando os objetos disponíveis no RegularExpressions
namespace, você pode comparar uma cadeia de caracteres com um determinado padrão, substituir um padrão de cadeia de caracteres por outra cadeia de caracteres ou recuperar apenas partes de uma cadeia de caracteres formatada. Neste exemplo, construiremos um padrão para validar um endereço de email. Este artigo refere-se ao namespace System.Text.RegularExpressions
da Biblioteca de Classes do Microsoft .NET Framework .
Requisitos
Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
- Visual C#
- Sintaxe de expressão regular
Usar expressões regulares para corresponder a um padrão
Inicie o Visual C#.
Crie um novo aplicativo de console do Visual C#.
Especifique o uso palavra-chave no
Text.RegularExpressions
namespace para que você não seja obrigado a qualificar declarações nesses namespaces posteriormente em seu código. A instrução de uso deve ser usada antes de qualquer outra declaração:using System.Text.RegularExpressions;
Defina uma nova expressão regular que usará uma correspondência de padrão para validar um endereço de email. A seguinte expressão regular é estruturada para realizar três coisas:
- Capture a substring antes do
@
símbolo e coloque-a nouser
grupo. - Capture a substring após o
@
símbolo e coloque-a nohost
grupo. - Verifique se a primeira metade da cadeia de caracteres não tem um
@
símbolo.
Regex emailregex = new Regex("(?<user>[^@]+)@(?<host>.+)");
- Capture a substring antes do
Defina uma nova cadeia de caracteres que contém um endereço de email válido. Isso fornece um valor padrão se o argumento de linha de comando do método estiver vazio:
String s = "johndoe@tempuri.org";
Verifique se há parâmetros de linha de comando; se houver, recupere o primeiro parâmetro e atribua-o à variável
s
.if (args.Length > 0) { s = args[0]; }
Use o
Match
método para passar a variável de endereço de email e retornar um novoMatch
objeto. OMatch
objeto retornará independentemente de qualquer correspondência ter sido encontrada na cadeia de caracteres de origem.Match m = emailregex.Match(s);
Examinando a
Success
propriedade, podemos decidir se devemos continuar processando oMatch
objeto ou imprimir uma mensagem de erro. Se for bem-sucedido, exiba osuser
grupos nomeados ehost
dentro daGroups
coleção doMatch
objeto.if (m.Success) { Console.WriteLine ("User: " + m.Groups["user"].Value); Console.WriteLine ("Host: " + m.Groups["host"].Value); } else { Console.WriteLine (s + " is not a valid email address"); } Console.WriteLine ();
Para manter a janela do console aberta após a execução do aplicativo, adicione as seguintes linhas de código:
System.Console.WriteLine("Press Enter to Continue..."); System.Console.ReadLine();
Crie seu projeto.
Para executar o aplicativo no ambiente de desenvolvimento usando o endereço de email padrão especificado no código, pressione F5 ou selecione Iniciar no menu Depurar . Para iniciar o aplicativo com um argumento de linha de comando, há três opções:
- No menu Projeto , clique em Propriedades e clique em Depurar. Na seção Opções de Início no painel direito, especifique o endereço de email que você deseja testar. Pressione F5 ou clique em Iniciar no menu Depurar para executar o aplicativo.
- Inicie uma janela de comando e navegue até a pasta bin ou depuração na pasta na qual o projeto reside. Em seguida, digite o nome do executável seguido pelo endereço de email que você deseja testar.
- Localize o arquivo executável para este projeto e arraste-o para o Start... Execute a janela na barra de tarefas. Adicione o endereço de email para verificar e clique em OK.
Referências
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários