NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze – Regulární výrazy v C# .NET - Úvod

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Jan Vargovský
Tvůrce
Avatar
Jan Vargovský:3.8.2013 16:25

Kdyby někdo potřeboval nějaké regexy tak mi pomohla stránka http://regexlib.com/

 
Odpovědět
3.8.2013 16:25
Avatar
Zdeněk Pavlátka:5.6.2014 11:46

To ověření data a času je dost zjednodušený, takhle můžu napsat např. 39-19-999 29:59 ;)

Odpovědět
5.6.2014 11:46
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
marek.bojanovsky:13.10.2017 10:46

"před výraz přidáme stříšku, která zajistí, že na začátku řetězce bude testovaný text a za výraz dáme dolar. Metaznak $ zajišťuje ověření od konce řetězce, tedy od konce ověříme, jestli řetězec splňuje pravidlo odzadu i odpředu. V závorkách se již pravidlo ověřuje běžným směrem."
Ve kterém jazyce dává tahle věta smysl??

 
Odpovědět
13.10.2017 10:46
Avatar
Lukáš Hlaváček:3.7.2019 16:38

Při zadání regulárního výrazu mi u zpětného lomítka vyskočí hláška: Nerozpoznaná řídící sekvence.
Nevíte prosím, kde by mohla být chyba? Moc díky
using System;
using System.Text;
using System.Text.Re­gularExpressi­ons;

namespace RegVyr
{
class Program
{
static void Main(string[] args)
{
Regex r = new Regex("^\+(420­|\+421) ?[0-9]{3} ?[0-9]{3} ?[0-9]{3}$");

Console.Write("Za­dejte tel. cislo: ");
if (r.IsMatch(Con­sole.ReadLine()))
{
Console.Write­Line("Zadali jste platné tel. cislo.");
}
else
{
Console.Write­Line("Zadali jste NEplatné tel. cislo.");
}
Console.ReadKey();
}
}
}

 
Odpovědět
3.7.2019 16:38
Avatar
Martin Petrovaj
Tvůrce
Avatar
Odpovídá na Lukáš Hlaváček
Martin Petrovaj:3.7.2019 17:25

Spätné lomítko sa v C# používa na escapovanie určitých špeciálnych znakov v stringoch (napr. \" ti umožní použiť úvodzovky vnútri stringu, \n označuje nový riadok atď., viac o tom nájdeš tu).

Ak chceš v stringu použiť spätné lomítko, musíš ho tiež takto "odescapovať", aby C# vedel, že sa nejedná o túto escape / "riadiacu" sekvenciu, ale že naozaj chceš v stringu použiť obyčajný znak spätné lomítko:

Console.WriteLine("Toto je spatne lomitko: \\");
Console.WriteLine("Toto je uvodzovka: \"");
// Console.WriteLine("Toto by neskompilovalo, C# by tu videl neukonceny string: \");

Rovnakú vec chceš spraviť aj vo svojom kóde:

var pattern = new Regex("^\\+(420|\\+421) ?[0-9]{3} ?[0-9]{3} ?[0-9]{3}$");
Odpovědět
3.7.2019 17:25
if (this.motto == "") { throw new NotImplementedException(); }
Avatar
Lukáš Hlaváček:3.7.2019 23:08

Aha :) To mi úplně nedošlo, moc díky za pomoc

 
Odpovědět
3.7.2019 23:08
Avatar
David
Člen
Avatar
David:6.5.2020 23:04

Díky za článek. ;-)

 
Odpovědět
6.5.2020 23:04
Avatar
barnabas.666
Člen
Avatar
barnabas.666:27.3.2021 16:53

Ta IP adresa by měla být spíš nějak takhle:

^((25[0-5])|(2[0-4][0-9])|(0?[0-9][0-9])|((0{2})?[0-9])|(1[0-9][0-9]))\.((25[0-5])|(2[0-4][0-9])|(0?[0-9][0-9])|((0{2})?[0-9])|(1[0-9][0-9]))\.((25[0-5])|(2[0-4][0-9])|(0?[0-9][0-9])|((0{2})?[0-9])|(1[0-9][0-9]))\.((25[0-5])|(2[0-4][0-9])|(0?[0-9][0-9])|((0{2})?[0-9])|(1[0-9][0-9]))$
 
Odpovědět
27.3.2021 16:53
Avatar
xmari75
Člen
Avatar
Odpovídá na Lukáš Hlaváček
xmari75:3.4.2021 14:50

Mě pomohlo dát před výraz v závorce zavináč.
new Regex(@"^(\+42­0|\+421) ?[0-9]{3} ?[0-9]{3} ?[0-9]{3}$")

 
Odpovědět
3.4.2021 14:50
Avatar
Tomáš Schlesinger:19.1.2022 15:25

Nestačil by pro kontrolu IP adresy a splnění všech podmínek tento zápis?

new Regex("^(2[0-5][0-5]|1[0-9][0-9]|0?[0-9]?[0-9].){3}(2[0-5][0-5]|1[0-9][0-9]|0?[0-9]?[0-9])$");
Editováno 19.1.2022 15:27
 
Odpovědět
19.1.2022 15:25
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 14.