Staňte se programátorem: Tajemné regulární výrazy

Diskuze čtenářů k článku

avatar
16. 09. 2009 00:15 | Microsoft Windows Vista Opera 9.80

> \d{3}\s\d{2}
> Vyhledá poštovní směrovací číslo ve tvaru xxx yy
Není tady chyba? \s totiž nikde popisovaný není a mezera je přece \b

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
16. 09. 2009 00:18 | Microsoft Windows Vista Opera 9.80

Tak jsem zkusil ten porovnávač a je to přesně obráceně. \s je mezera a \b mi to jako mezeru vzít nechce :)
Každopádně pokaždý, když jsem dělal (v php) tyhle výrazy, který nejsem schopnej nějak hlouběji pochopit, jsem jako mezeru nepoužíval nic s lomítkem, ale prostě normální mezeru " " :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
Sislik  |  16. 09. 2009 02:12  |  Microsoft Windows 7 Opera 9.80

v jazycich Perl, PHP, Java a JavaScript jsem mezeru taky nikdy neescapoval a pouzival pouze ' '
jinak \s je prazdny znak, coz je krome mezery treba tabulator
a \b myslim oznacuje hranici slova v danem retezci
(aspon takhle je to myslim v Perlu, za ostatni jazyky nerucim (ono i za ten Perl nerucim :)))

jinak u opakovani znaku se imho zapomnelo na docela dulezity '?', ktery znaci, ze dany znak (skupina znaku) tam bud neni nebo je prave jednou (pochybuju, ze by v .NET nebyl a pokud tam skutecne neni, tak mi to prijde divny)

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
16. 09. 2009 02:32 | Microsoft Windows Vista Opera 9.80

Snažil jsem se to hledat a našel jsem nějakej docela pěknej přehled těhle perlových výrazů v EN (ale už jsem nechtěl psát další příspěvek, aby to nevypadalo jako nějaká trapne one-man-show ) a je to jak píšeš. \b je hranice slova, \s je ten "prázdnej znak"

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
16. 09. 2009 03:05 | Microsoft Windows XP Maxthon 7.0

Při hledání jablka pozor, nenajde se slovo, které je na konci věty a je za ním nějaké znaménko.
Jinak díky za článek, regulární výrazy se hodí každému.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Rudidlo  |  16. 09. 2009 08:58  |  Microsoft Windows 7 Firefox 3.5.3

Regulární výraz na test emailové adresy zkomolí všechny adresy , které obsahují pomlčku.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Beda 2.  |  16. 09. 2009 10:19  |  Microsoft Windows XP Opera 9.60

problem je i s adresou, ktera obsahuje vic tecek pred @

Souhlasím  |  Nesouhlasím  |  Odpovědět
Rudidlo  |  16. 09. 2009 10:23  |  Microsoft Windows 7 Firefox 3.5.3

Pokud chcete zkontrolovat emailovou adresu v souladu s RFC 822, zde je správný regulární výraz. Při větším počtu kontrol doporučuji nejprve pattern zkompilovat.
http://ex-parrot.com/~pdw/Mail-RFC822-Address.... ...

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
16. 09. 2009 11:06 | Linux Mozilla 1.9.1.2

jezis marja co to je za mega regular? :D
Tady je k dispozici kontrola emailove adresy podle RFC 2822 podle me docela prehledne napsana..
http://www.abclinuxu.cz/poradna/programovani/show... ...

Souhlasím  |  Nesouhlasím  |  Odpovědět
YettyMan  |  16. 09. 2009 15:15  |  Linux Mozilla 1.9.0.13

Pěkně dlouhé...

Souhlasím  |  Nesouhlasím  |  Odpovědět
vzach  |  16. 09. 2009 13:40  |  Microsoft Windows XP Firefox 3.5.3

Uvedený výraz by nejspíš nenašel ani e-mailové adresy z top domény .info

Souhlasím  |  Nesouhlasím  |  Odpovědět
PetrTom  |  16. 09. 2009 09:53  |  Microsoft Windows Vista Firefox 3.5.2

Díky za dobrý článek, pro začínající programátory určitě přínosné :o)

Souhlasím  |  Nesouhlasím  |  Odpovědět
BugMeNoter  |  16. 09. 2009 10:32  |  Linux Mozilla 1.9.1.2

\b není mezera, ale hranice slova (border). Mezera je \s (space). Takže \b funguje i u slova zcela na začátku resp. na konci, před kterým resp. za kterým už mezera není.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
16. 09. 2009 10:57 | Linux Mozilla 1.9.1.2

presne tak, taky me to hned trklo.. jinak jeste doplnim ze \s neni jen mezera, ale libovolny whitespace, tedy treba i TAB..

Souhlasím  |  Nesouhlasím  |  Odpovědět
shaghal  |  16. 09. 2009 19:01  |  Microsoft Windows Vista Chrome 3.0.195.21

tady je to celkem dobre popsano:
http://www.vsj.co.uk/articles/display.asp...

Souhlasím  |  Nesouhlasím  |  Odpovědět
Substance242  |  17. 09. 2009 10:49  |  Microsoft Windows XP Opera 9.80

Hmm, prečo mám pocit, že doteraz som v češtine čítaval "regulÉrní" výrazy?

Souhlasím  |  Nesouhlasím  |  Odpovědět
Wikan  |  17. 09. 2009 22:43  |  Microsoft Windows 7 Firefox 3.5

Slova regulární a regulérní mají odlišné významy.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Substance242  |  17. 09. 2009 23:51  |  Microsoft Windows XP Opera 9.80

Aha. Jedine že by tak.

Souhlasím  |  Nesouhlasím  |  Odpovědět
bob7  |  12. 02. 2010 11:17  |  Microsoft Windows XP Firefox 3.6

není náhodou v posledním výrazu chyba?
(\w{1,}\.\w{1,}|\w*)@\w{1,}\.\w{2,3}
Z části před zavináčem (\w{1,}\.\w{1,}|\w*) může být buď písmena nebo číslice oddělená tečkou \w{1,}\.\w{1,}
, nebo libovolný počet písmen nebo číslic w* . Libovolný znamená že nemusí být obsažen žádný znak. Jenže taková adresa nelze zadat, pokud vím. Takže by to spíš mělo být w+

Souhlasím  |  Nesouhlasím  |  Odpovědět
16. 01. 2020 18:31 | Linux Firefox 63.0

Online nástroj pro testování regulárních výrazů je na http://retezce.jednoduse.cz/...

Souhlasím  |  Nesouhlasím  |  Odpovědět
Zasílat názory e-mailem: Zasílat názory Můj názor
Aktuální číslo časopisu Computer

Megatest SSD s kapacitou 1 TB

Srovnávací test robotických vysavačů

Vybíráme nejlepší telefony na trhu

Jak zlepšit zvuk televize