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

Re: regex tutorial vraag



On Wed, Sep 15, 2021 at 01:33:02PM +0200, Martijn van de Streek wrote:
> 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,

Begrijpelijk


> > 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):

Daar staat eigenlijk
dat grep meerdere "Regular Expression Engines" heeft.
 
> $ perldoc perlretut
> $ perldoc perlre
> $ perldoc perlrebackslash
> 
> De basis van de meeste regex-dialecten is vrijwel hetzelfde,

Inderdaad, er zijn meerdere regex-dialecten.


> 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".

Yep, er zijn verschillen.
En als je dat niet weet (als verwacht "allemaal hetzelfde")
dan kan het je akelig opbreken.

Zoals Martijn zegt: Basis van regex is hetzelfde.


Groeten
Geert Stappers
-- 
Silence is hard to parse


Reply to: