Em ciência da computação teórica e teoria da linguagem formal, uma expressão regular abreviada de Regex ou Regexp e, por vezes chamado de uma expressão racional é uma sequência de caracteres que forma um padrão de pesquisa, principalmente para uso na correspondência de padrões com Strings, ou sequência correspondente, ou seja, como operações de localizar e substituir. O conceito surgiu na década de 1950, quando o matemático americano Stephen Kleene formalizava a descrição de uma linguagem regular, e entrou em uso comum com os utilitários Unix de processamento de texto.
Cada caractere em uma expressão regular ou é entendido como um MetaCharacter com seu significado especial, ou um caractere regular com o seu significado literal. Em conjunto, eles podem ser usados para identificar material textual de um determinado padrão, ou processar um número de instâncias do mesmo que podem variar de uma igualdade exata para uma semelhança muito geral do padrão.
O Regex pode ser usado para analisar rapidamente grandes quantidades de texto para encontrar padrões de caracteres específicos; para extrair, editar, substituir ou excluir substrings de texto, também é comum serem utilizadas para validar campos.
Regular Expression
Existe muito material sobre expressões regulares, inclusive o .NET Framework contempla classes para combinar sequências de caracteres contra padrões especificados por expressões regulares que representam uma expressão regular imutável.
Regex: https://msdn.microsoft.com/pt-br/library/system.text.regularexpressions.regex(v=vs.110).aspx
A Microsoft também disponibiliza uma referencia rápida da linguagem de expressão regular para o .NET Framework para que seja usada em suas aplicações.
Regular Expression Language: https://msdn.microsoft.com/en-us/library/az24scfc(v=vs.110).aspx
Por outro lado existem alguns sites que proporcionam ótimos materiais sobre Regex e permitem que você crie e teste sua própria expressão regular antes de a utilizar.
RegExr: http://regexr.com/
Expressão regular que contempla caracteres maiúsculos e minúsculos: Pattern [a-zA-Z]+
Expressão regular que contempla números inteiros e flutuantes: Pattern (?:\d*\.)?\d+Usando Expressões Regulares
1 – Crie uma aplicação ASP.NET do tipo C# Empty e utilize os códigos abaixo, que contempla o RegularExpressionValidator e suas propriedades requeridas para que funcione corretamente:
2 – Rode sua aplicação e tente preencher os campos com valores inadequados ao seu tipo, após o foco deixar o campo ele será automaticamente validado:
Exemplo:
Neste exemplo utilizamos expressões regulares para validar o conteúdo dos campos de uma aplicação ASP.NET. Na aplicação se um campo de texto conter caracteres que não correspondem a expressão serão automaticamente invalidados.
ASP NET – C#
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="DAWebApp001._default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <style type="text/css"> .auto-style2 { width: 14%; } .auto-style3 { height: 23px; } .auto-style5 { width: 248px; } .auto-style6 { width: 54%; } .auto-style8 { height: 23px; width: 54%; } .auto-style9 { height: 23px; width: 248px; } </style> </head> <body> <h1>Desenvolvimento Aberto - ASP.NET</h1> <h2>Validação de Controles</h2> <form id="form1" runat="server"> <div> <table style="width: 100%;"> <tr> <td class="auto-style3" colspan="2"> <asp:Label ID="LabelMenssagem" runat="server" Text="Entre com os dados abaixo:"></asp:Label> </td> <td class="auto-style8"></td> </tr> <tr> <td class="auto-style2"> <asp:Label ID="Label2" runat="server" Text="Nome:"></asp:Label> </td> <td class="auto-style5"> <asp:TextBox ID="TextBox1nome" onMouseOver="meuMouseOver()" onMouseOut="meuMouseOut()" runat="server" Width="142px"></asp:TextBox> </td> <td class="auto-style6"> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1nome" ErrorMessage="Nome é obrigatório." ForeColor="Red" ValidationGroup="AllValidator"></asp:RequiredFieldValidator> <br /> <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox1nome" ErrorMessage="Permitido somente caractere alphanumericos" ForeColor="Red" ValidationExpression="[a-zA-Z]+" ValidationGroup="AllValidator"></asp:RegularExpressionValidator> </td> </tr> <tr> <td class="auto-style3"> <asp:Label ID="Label3" runat="server" Text="Sobrenome:"></asp:Label> </td> <td class="auto-style9"> <asp:TextBox ID="TextBox2sobrenome" runat="server" Width="240px"></asp:TextBox> </td> <td class="auto-style8"> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TextBox2sobrenome" ErrorMessage="Sobrenome é obrigatório." ForeColor="Red" ValidationGroup="AllValidator"></asp:RequiredFieldValidator> <br /> <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="TextBox2sobrenome" ErrorMessage="Permitido somente caractere alphanumericos" ForeColor="Red" ValidationExpression="[a-zA-Z]+" ValidationGroup="AllValidator"></asp:RegularExpressionValidator> </td> </tr> <tr> <td class="auto-style3"> <asp:Label ID="Label4" runat="server" Text="Cargo:"></asp:Label> </td> <td class="auto-style9"> <asp:TextBox ID="TextBox3cargo" runat="server" Width="186px"></asp:TextBox> </td> <td class="auto-style8"> <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="TextBox3cargo" ErrorMessage="Cargo é obrigatório." ForeColor="Red" ValidationGroup="AllValidator"></asp:RequiredFieldValidator> <br /> <asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" ControlToValidate="TextBox3cargo" ErrorMessage="Permitido somente caractere alphanumericos" ForeColor="Red" ValidationExpression="[a-zA-Z]+" ValidationGroup="AllValidator"></asp:RegularExpressionValidator> </td> </tr> <tr> <td class="auto-style3"> <asp:Label ID="Label5" runat="server" Text="Salário:"></asp:Label> </td> <td class="auto-style9"> <asp:TextBox ID="TextBox4salario" runat="server"></asp:TextBox> </td> <td class="auto-style8"> <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="TextBox4salario" ErrorMessage="Salário é obrigatório. " ForeColor="Red" ValidationGroup="AllValidator"></asp:RequiredFieldValidator> <br /> <asp:RegularExpressionValidator ID="RegularExpressionValidator4" runat="server" ControlToValidate="TextBox4salario" ErrorMessage="Permitido somente caractere numericos e decimais." ForeColor="Red" ValidationExpression="(?:\d*\.)?\d+" ValidationGroup="AllValidator"></asp:RegularExpressionValidator> </td> </tr> <tr> <td class="auto-style3"></td> <td class="auto-style9"></td> <td class="auto-style8"></td> </tr> <tr> <td class="auto-style3"> <asp:Button ID="Button1enviardados" runat="server" Text="Enviar Dados" OnClick="Button1enviardados_Click" ValidationGroup="AllValidator" /> </td> <td class="auto-style9"> </td> <td class="auto-style8"> </td> </tr> </table> <!-- Div - logs do evento javascript --> <div id="meulog"></div> </div> </form> </body> </html>
Default.aspx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace DAWebApp001 { public partial class _default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1enviardados_Click(object sender, EventArgs e) { if (Page.IsValid) { // Envia menssagem quando todos os campos requeridos // forem preenchidos tornando a página valida. LabelMenssagem.ForeColor = System.Drawing.Color.Green; LabelMenssagem.Text = "Dados enviados com sucesso."; } } } }
Web.config
<?xml version="1.0" encoding="utf-8"?> <!-- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web> <appSettings> <add key="ValidationSettings:UnobtrusiveValidationMode" value="None"/> </appSettings> </configuration>