Exemple de fonction Perl substr(), exemple de code de fonction substr() - renvoie la sous-chaîne de EXPR, en commençant par le décalage OFFSET dans la chaîne.
Grammaire :
substr EXPR, OFFSET, LEN, REMPLACEMENT
substr EXPR, OFFSET, LEN
substr EXPR, DÉCALAGE
Définition et usage
Renvoie la sous-chaîne de EXPR, en commençant par le décalage OFFSET dans la chaîne. Si OFFSET est négatif, la chaîne commence par plusieurs caractères à la fin. Si LEN est spécifié, renvoie le nombre d'octets ou tous les octets jusqu'à la fin de la chaîne (si non spécifié). Si len est un nombre négatif, le nombre de caractères pour terminer la chaîne.
Si vous remplacez la sous-chaîne spécifiée par REPLACEMENT, remplacez la chaîne de REPLACEMENT.
Si vous spécifiez une sous-chaîne qui va au-delà de la fin de la chaîne, renvoie le seul élément valide de la chaîne d'origine.
Valeur de retour
Chaîne
Exemple
Essayez l'exemple suivant :
#!/usr/bin/perl -w #by www.yiibai.com $temp = substr("okay", ); print "Substring valuye is $temp\n"; $temp = substr("okay", ,); print "Substring valuye is $temp\n";
Cela produira les résultats suivants :
La valeur de la sous-chaîne est ay
La valeur de la sous-chaîne est ka
Exemple d'analyse de l'application de la fonction Perl substr
Cet article se concentrera sur l'application de la fonction Perl substr. Lors de l'écriture d'un programme Perl, nous avons parfois besoin d'intercepter une partie d'une chaîne. À ce stade, nous utilisons généralement la fonction substr pour réaliser cette fonction.
Application de la fonction Perl substr
Lors de l'écriture d'un programme Perl, nous avons parfois besoin d'intercepter une partie du contenu d'une chaîne. À ce stade, nous utilisons généralement la fonction Perl substr pour réaliser cette fonction.
$str="testtest"; printsubstr($str,0,5); $str="testtest"; printsubstr($str,0,5);
Exécutez le programme ci-dessus et affichez le résultat "testt", qui est le résultat souhaité. Jetez un autre œil au programme ci-dessous :
$str="测试文本"; printsubstr($str,0,1); $str="测试文本"; printsubstr($str,0,1);
À ce moment, un "?" est affiché, ce qui n'est évidemment pas le résultat souhaité. Parce qu'en Perl, toutes les chaînes entrées de l'extérieur (y compris les chaînes écrites dans le programme) seront traitées comme des octets, "printsubstr($str,0,1);" cette phrase signifie simplement "texte de test". Le premier octet est supprimé et affiché en utilisant print. Cependant, un seul octet ne peut pas représenter un caractère chinois, donc "?" est affiché.
Si vous souhaitez que le programme ci-dessus génère des résultats corrects, vous devez utiliser la fonction de décodage pour convertir le "texte de test" en une chaîne interne à Perl, afin que Perl puisse traiter le "texte de test" comme une chaîne, puis utilisez "substr( $str,0,1);"Ce qui est intercepté n'est pas un octet, mais un caractère chinois.
Jetons un coup d'œil à l'utilisation de la fonction Perl substr :
Commande : substr
Syntaxe : substr($string,offset,length)
offset représente la position du caractère de départ et la longueur représente la longueur de la chaîne citée. Si la longueur est omise, elle représente la longueur de la valeur de départ au dernier caractère de la chaîne. Et
Si offset est une valeur négative, les caractères seront spécifiés en commençant par le côté droit de la chaîne.
Exemple :
$s=substr("perl5",2,2);#这时$s="rl"; $s=substr("perl5",2);#这时$s="rl5"; $s=substr("perl5",-2,2);#这时$s="er";