• Mastering regular expressions: la lecture qu'elle en est bien

    From Marc Chantreux@21:1/5 to All on Mon Jun 5 13:50:01 2023
    Le Sat, Jun 03, 2023 at 02:08:55PM +0200, Dethegeek a écrit :
    Par exemple, dans un texte contenant des chaînes délimitées soit par des doubles quotes ou des simples quotes (le HTML apr exemple) alors tu peux

    si il y a bien *un* truc à ne jamais parser avec des regexps autrement
    que pour du one shot, c'est tous ces formats dont la structure est très complexe (xml,html,yaml, …

    capturer le début d'une chaîne avec ("|') puis trouver la fin de cette chaîne
    avec \1.

    GNI? non …

    * on capture avec des parenthèses qui expliquent ou commencent
    et finissent la capture
    * la capture numero N (\N) est celle de la Nième (

    sed -r '
    s/(.*-(.*)) (.*)/ 1: \1\n 2: \2\n 3: \3\n/
    ' <<%
    Saint-Exupery Antoine

    te donneras

    1: Saint-Exupery
    2: Exupery
    3: Antoine

    les | servent à écrire des Atomes alteratifs

    sed -rn 's/Saint-(Exupery|Hilaire) (.*)/\2 est saint /p' <<%
    Saint-Exupery Antoine
    Saint-Thomas d'Aquin

    Donne:

    Antoine est saint

    Tu as aussi des outils sympas pour tester tes regexes,
    https://regex101.com/

    ou vim avec

    :set is hls

    et les verymagic (\v)

    ou tout simplement des exos de sed. j'avoue ne pas piger pourquoi
    tous ces millions de lignes de code et du réseau gachés juste pour
    s'amuser avec des outils qui ne pèsent rien sur ta machine.

    Et une excellente documentation sur les regexes, celle qui m'a permis de tout en apprendre il y a bien longtemps. Pour moi c'est une référence dans le domaine.

    De *très très très* loin, ce que j'ai pu lire de mieux sur les regexps est

    https://www.oreilly.com/library/view/mastering-regular-expressions/0596528124/

    Non seulement c'est techniquement très précis (les types de moteurs, avantages comparés de NFA et DFA, tout ça …) mais en plus c'est *très
    bien écrit* et ca donne envie d'essayer les trucs. A lire entre amis
    avec les laptops à porté de main, ça remplace aisément les soirées
    jeu de plateaux ou netflix.

    cordialement,
    marc

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)