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