• [^] # Re: Regexps ...

    Posté par (site web personnel) . En réponse au message Extraire un bout de chaîne. Évalué à 2.

    • J'ajoute deux lettres (des non-chiffres) autour de la chaîne à tester ;
    • et je construit la regexp
      1. le début, terminé par un non-chiffre : ^.*[^0-9]
      2. entre parenthèses \(...\), la sous-regexp de date du XXIème siècle (avec une vingtaine de mois qui peuvent avoir quarante jours, mais bon...)
      3. un non-chiffre, et la suite jusqu'à la fin.
      Sans les lettres d'encadrement, il faudrait remplacer le début de la regexp par ^\(.*[^0-9]\)\? pour le rendre facultatif, et changer le numéro du bloc conservé, qui passerait en 2円 --- de même pour la fin, qui pourrait aussi être vide. Remarque : comme le premier .* est « avide », la date extraite est la dernière de la chaîne. Si ça ne convient pas, les regexps de Perl sont plus souples.