Pourquoi est divisé sur le caractère " | " (pipe) ne fonctionne pas comme prévu?
J'ai une chaîne que je veux partager. Mais le séparateur est déterminé au moment de l'exécution et donc j'ai besoin de passer comme une variable.
Quelque chose comme my @fields = split(/$delimiter/,$string);
ne fonctionne pas. Toutes les pensées?
D'entrée:
abcd|efgh|23
Résultat Attendu:
abcd
efgh
23
Votre entrée, la production réelle et la production prévue serait extrêmement utile de l'information...
Vous ne disposez pas d'un "séparateur", vous avez un "séparateur". Un "séparateur" marque les limites, c'est à dire. c'est aux deux extrémités, comme les doubles guillemets. Un "séparateur" passe entre les éléments, comme le "|" dans votre exemple d'entrée.
double possible de Comment puis-je gérer les caractères spéciaux dans une expression rationnelle Perl?
merci cela m'a aidé à résoudre un problème que je travaillais sur
Vous ne disposez pas d'un "séparateur", vous avez un "séparateur". Un "séparateur" marque les limites, c'est à dire. c'est aux deux extrémités, comme les doubles guillemets. Un "séparateur" passe entre les éléments, comme le "|" dans votre exemple d'entrée.
double possible de Comment puis-je gérer les caractères spéciaux dans une expression rationnelle Perl?
merci cela m'a aidé à résoudre un problème que je travaillais sur
OriginalL'auteur Chris | 2011-03-28
Vous devez vous connecter pour publier un commentaire.
Vous devez vous échapper de votre délimiteur, puisque c'est un caractère spécial dans les expressions régulières.
Option 1:
Option 2:
perldoc perlretut
,perldoc perlre
et de la recherche pour /\\Q/ et voirperldoc -f quotemeta
.L'argument de
split
n'est pas un délimiteur, mais un séparateur.Pas selon
perldoc -f split
: "quelque Chose correspondant à MOTIF est considéré comme un séparateur pour les champs."OriginalL'auteur