Il y a un fichier dummy.txtComment remplacer une expression évaluée dans Perl?
Le contenu sont:
9/0/2010
9/2/2010
10/11/2010
Je dois changer la partie mois (0,2,11) à +1, à savoir (1,3,12) J'ai écrit le regex de substitution comme suit
$line =~ s/\/(\d+)\//\/\1+1\//;
Il est imprime
9/0+1/2010
9/2+1/2010
10/11+1/2010
Comment le faire ajouter - 3
numériquement que d'effectuer une concat? ??
awesome !, cela a fonctionné - si cela ne vous dérange pas pouvez-vous expliquer la syntaxe s {} - je veux dire est-il possible de l'obtenir avec s/plutôt que s { – Sekhar
@OP: J'ai mis à jour ma réponse. 's ///' est équivalent à 's {} {}', juste qu'il utilise un délimiteur différent et vous évitera d'échapper '/'. – codaddict
Bien que cela ne soit pas obligatoire, l'utilisation du modificateur 'x' pour vos expressions régulières améliore considérablement leur lisibilité: s {/ (\ d +) /} {'/'. (1 $ + 1).'/'} egx –