Perl - supprimer le premier mot dans une chaîne de caractères avec les expressions régulières
Je suis nouveau à la fois Perl et reg-ex, et je suis en train de supprimer le premier mot dans une chaîne de caractères (ou le premier mot d'une ligne dans un fichier texte) , ainsi que tous les espaces qui le suit.
Par exemple, si ma chaîne est 'one two abd123words'
, je veux supprimer 'one '
.
Le code que j'essayais est: $line =~/(\S)$/i
;
mais cela ne me donne le dernier mot.
Si cela fait une différence, le mot que j'essaie de supprimer une entrée, et stocké dans $arg.
OriginalL'auteur ImprovedSilence | 2012-01-07
Vous devez vous connecter pour publier un commentaire.
Pour supprimer le premier mot de chaque ligne:
MODIFIER pour une explication:
pourquoi, lorsque j'essaie d'imprimer, que je viens d'obtenir un
1
(bool?), plutôt du la chaîne? Je suis juste en utilisantprint $line =~ s/^\S+\s*//;
?Imprimer dans les autres instructions:
$line =~ s/^\S+\s*//; print $line;
ou de l'utilisationr
changer, comme:print $line =~ s/^\S+\s*//r;
ouais, qu'il a fait. Merci pour l'aide.
N'oubliez pas d'accepter cette réponse si cela vous a aidé (cliquez sur la coche en vertu de la notation)
OriginalL'auteur Birei
Tu veux dire? :
(Qui supprime les espaces, suivi par une ou plusieurs caractères espace, suivi par tout nouvellement initiale de l'espace.)
OriginalL'auteur ruakh
En one-liner forme:
OriginalL'auteur Zaid