nedeľa, 20 november 2011 11:33 Written by 7591 times
Rate this item
(0 votes)

Regulárny výraz časť I.

Regulárny výraz (regular expression), označovaný tiež skrátene ako regexp alebo regex je špeciálny reťazec znakov, ktoré predstavujú určitý vzor (masku) pre textový reťazec. Regulárny výrazy sa preto najčastejšie používajú ku kontrole dát zadávaných vo formulároch. Ďalej nám regulárny výrazy umožňujú jednoducho vyhľadávať a nahradzovať text.

Výraz

Vysvetlenie

x znak x
\\ spätné lomítko
\0n znak v osmičkovom kóde
\xhh znak v hexadecimálnom kóde
\uhhhh znak UNICODE v hexadecimálnom kóde 0×hhhh
\t znak tabulátor (‚\u0009‘)
\n znak nového riadku (‚\u000A‘)
\r znak posunu vozíku (‚\u000D‘)
[abc]  a, b, alebo c
[^abc] všetky znaky okrem a, b, lebo c (negácia)
[a-zA-Z] a až z alebo A až Z (rozsah)
[a-d[m-p]] a až d, alebo m až p: [a-dm-p](zjednotenie)
[a-z&&[def]] d, e, alebo f (prienik)
[a-z&&[^bc]] a až z, okrem b a c: [ad-z](rozdiel)
\d číslice: [0–9]
\D opak číslice (negácia): [^0–9]
\s biely znak: [ \t\n\x0B\f\r]
\S opak bieleho znaku: [^\s]
\w slovo: [a-zA-Z0-9]
\W opak slova: [^\w]
^ začiatok riadku
$ koniec riadku
\b hranice slova
\B opak hranice slova (negácia)
X? X, žiadny alebo jeden
X* X, žiadny alebo viac
X+ X, jeden alebo viac
X{n} X, presne n krát
X{n,} X, minimálne n krát
X{n,m} X, minimálne n krát, ale nie viac ako m krát
XY X ihneď za Y (and)
X|Y X alebo Y (or)

Príklad na overenie emailovej adresy

^.+@.+\..+$
znaky ^ a $ označujú, že vstupný reťazec musí vyhovovať výrazu od jeho začiatku až po koniec. Teda ^ - začiatok, $ - koniec.
znaky .+ jeden,alebo viac ľubovolných znakov.
znak @ nasleduje zavináč
znaky .+ jeden,alebo viac ľubovolných znakov.
znaky \. nasleduje bodka.Ak chceme aby sa tam bodka naozaj nachádzala a nemá zastupovať iné znaky, preto musíme dať pred bodku spätné lomítko, podobne ako v programovaní.
znaky .+ jeden,alebo viac ľubovolných znakov.

Hotový zdrojový kód by mal vyzerať takto:

using System;
using System.Text.RegularExpressions;
class MainClass
{
	public static void Main(string[] args)
	{
		Console.WriteLine("Zadajte email adresu na overenie");
		string email = Console.ReadLine();
		string sablona = @"^.+@.+\..+$";
		Regex regExp = new Regex(sablona);
		if(regExp.IsMatch(email) == true)
		Console.WriteLine("Adresa je korektna");
		else
		Console.WriteLine("Chyba!!");
		Console.ReadLine();
	}
}
Last modified on pondelok, 21 november 2011 12:46
Ing.Jaroslav Vadel

Som zakladateľom www.projectik.eu.

Hrám sa na programátora, ktorý ovláda:

c#,cpp,java,unity3d,php,html,NI testand,NI Vision Builder,Cognex In-Sight,NI LabView

"Naprogramovať program, ktorý funguje vie každy. Ale to, že program funguje ešte neznamena, že je napísany správne "

Website: www.projectik.eu