Comment tronquer une chaîne d'une longueur spécifique en perl?
Je suis juste incapable de trouver "tronquer une chaîne d'une longueur spécifique" en Perl.
Est-il construit en chemin?
Mise à JOUR:
d'entrée: $str = "abcd";
de sortie (truncate pour 3 caractères): $str est abc
- Pouvez-vous fournir un échantillon d'ENTRÉE/de SORTIE pour plus de clarté ?
Vous devez vous connecter pour publier un commentaire.
Vous souhaitez utiliser le
substr()
fonction.De plus, l'utilisation
perldoc
Dans votre cas, il serait:
Pour une chaîne de longueur arbitraire, où tronquer durée peut être plus longue que la longueur de la chaîne, j'opterais pour une substitution
Pour des chaînes plus courtes, la substitution ne correspond pas et la chaîne ne sera pas modifié. La pratique
\K
d'échappement peut être remplacé par un lookbehind affirmation, ou une simple capture:Tant que votre chaîne d'origine est au moins de 3 caractères, vous pouvez utiliser un appel à
substr
comme une lvalue.La longueur initiale de la chaîne doivent être vérifiées, comme si il est plus court de 3 caractères, la valeur de retour de cet appel à
substr
ne peut pas être assigné (voirperldoc -f substr
pour plus d'informations) et d'essayer de le faire causer une erreur.Il est probablement utile de mentionner également que, au lieu de
substr()
ou des expressions régulières, vous pouvez utiliserprintf
ousprintf
.Voir
perldoc -f sprintf
:Si je comprends bien, vous devez faire comme
php
wordwrap()
une chaîne de caractères, donc :Si vous avez juste besoin de les N premiers caractères :
Ou vous pouvez utiliser regexp à faire de même.
La façon la plus naturelle est d'utiliser substr pour extraire la partie que vous voulez:
Si vous souhaitez uniquement modifier la chaîne et que vous êtes certain qu'il est au moins à la longueur souhaitée:
Si vous n'êtes pas certain, vous pouvez faire:
ou intercepter l'exception: