[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: regex tutorial vraag



mj schreef op wo 15-09-2021 om 12:44 [+0200]:
> 
> Op bijvoorbeeld http://regextutorials.com/ leren ze je dat \w hele 
> woorden matcht, \d voor decimals, etc. (en nog veel veel zulke
> handige shortcuts)
> 

\w matcht "word characters" (niet hele woorden). Wat dat precies
betekent is afhankelijk van je locale/taalinstellingen en het programma
waarmee je de regex match doet.

In sommige locales kan "\w" naast "a-zA-Z" ook tekens als "ë" of zelfs
"и" matchen en "\d" tekens als "٣".

> Op alle andere tutorials die ik vind is dat helemaal anders, en lijkt
> de backslash vooral een escape character om bv een letterlijke PUNT
> ('\.') te matchen, en dat is ook wat ik merk als ik het test met
> "grep -E"
> 
> Kan iemand van hier daar iets zinnigs over zeggen..?

"\" is over het algemeen inderdaad een escape-character, maar alleen
voor niet-letters. Veel "\ + letter"-combinaties hebben zulke speciale
betekenissen.

> Kan iemand me een site aanraden (a la regextutorials.com) die ik zou 
> kunnen gebruiken om regex zoals bv "grep -E" ze gebruikt te
> leren/oefenen?

Voor echt grondige kennis (en naslag) kan ik "Mastering Regular
Expressions" van Jeffrey Friedl aanraden (ISBN: 978-0-596-52812-6)

Daarnaast ben ik zelf vooral bekend met de handleidingen van Perl. Die
beschrijven de "Perl-smaak" van regex (je kunt "grep" vragen om Perl-
stijl regex te gebruiken dmv. "grep -P" - dit gebruikt "PCRE", Perl-
Compatible Regular Expressions):

$ perldoc perlretut
$ perldoc perlre
$ perldoc perlrebackslash

De basis van de meeste regex-dialecten is vrijwel hetzelfde, dus de
kennis die je hieruit haalt is over het algemeen 1 op 1 toepasbaar voor
"grep -E". De verschillen zitten vooral in hoeveel en waar je moet
escapen en in complexere/nieuwere features zoals "negative zero-width
look-ahead".

-Martijn


Reply to: