J'ajoute deux lettres (des non-chiffres) autour de la chaîne à tester ;
et je construit la regexp
le début, terminé par un non-chiffre : ^.*[^0-9]
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...)
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.
[^] # Re: Regexps ...
Posté par Jacques L'helgoualc'h (site web personnel) . En réponse au message Extraire un bout de chaîne. Évalué à 2.
- le début, terminé par un non-chiffre : ^.*[^0-9]
- 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...)
- 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.