Une opération typique lorsque vous travaillez avec des chaînes est de déterminer si une chaîne contient une sous-chaîne spécifique. Vous pouvez utiliser ces méthodes pour localiser et désinfecter les commentaires des utilisateurs, empêchant ainsi tout code malveillant.
Dans ce tutoriel, nous vous montrerons comment déterminer si une chaîne contient une sous-chaîne spécifique.
Ruby inclut? Méthode
La façon la plus simple de découvrir si une sous-chaîne spécifique est dans une autre chaîne est à utiliser comprend? méthode intégrée.
Voici un exemple:
str = 'Dans l'exemple ci-dessus, nous avons un programme simple contenant des informations à partir d'une entrée de formulaire HTML. Nous vérifions si le formulaire contient une méthode post-post-méthode inclue.
Étant donné que la valeur de retour de la méthode est un booléen vrai ou false si la sous-chaîne est disponible ou non, respectivement, nous mettons en œuvre une déclaration if… else pour agir en conséquence.
L'exemple de sortie du script ci-dessus est comme indiqué:
$ substring ruby.RBSi nous substituons les données de formulaire et définissons la méthode sur un GET, nous pouvons accéder au bloc Else comme:
str = 'Nous exécutons le script comme:
$ substring ruby.RBUn inconvénient de l'inclusion? La méthode est sensible à la casse. Cela signifie que la publication et la publication renvoient une fausse valeur.
Par exemple:
str = 'post'Si nous exécutons l'exemple ci-dessus, nous devons obtenir une sortie du bloc Else:
$ substring ruby.RBPour surmonter cela, nous pouvons d'abord convertir la chaîne entière en minuscules ou en majuscules, puis vérifiez si la sous-chaîne est dans la chaîne principale.
Voici un exemple:
str = 'post'Dans cet exemple, nous convertissons la sous-chaîne en majuscules, qui correspond à la chaîne principale, et vérifions la valeur.
$ substring ruby.RBUtilisation de Regex
Nous pouvons utiliser Regex pour vérifier si une chaîne détient une sous-chaîne spécifique. Ruby retournera nil si le modèle d'expression régulière spécifié n'est pas à l'intérieur de la chaîne.
Par exemple:
str = 'Dans l'exemple ci-dessus, nous utilisons une expression régulière simple pour vérifier si la chaîne contient la sous-chaîne "Post".
Si nous exécutons le script ci-dessus, nous devrions obtenir une sortie similaire à celle ci-dessous:
$ substring ruby.RBLa valeur de retour de l'expression régulière est l'indice initial où le cas de correspondance est trouvé. Dans notre exemple, la chaîne de post commence à partir de l'index 33. Nous pouvons vérifier comme:
str = '…Dans l'exemple ci-dessus, nous commençons à partir de l'index initial où la chaîne est trouvée pour correspondre à la longueur de la sous-chaîne:
$ substring ruby.RBRéférence de l'élément Ruby String []
Nous pouvons également utiliser la méthode de référence Ruby String. Nous pouvons passer une chaîne, une valeur d'index ou une expression régulière à l'intérieur d'une paire de crochets.
Exemple d'utilisation:
str = 'post'Si nous exécutons l'exemple ci-dessus, nous devrions voir une sortie comme:
=> PosterSi la sous-chaîne est disponible, elle renverra la chaîne réelle; Cependant, il retournera nul s'il n'y a pas de sous-chaîne.
Le même cas s'applique aux expressions régulières.
str = 'post'Nous pouvons également utiliser la méthode ci-dessus pour extraire une sous-chaîne. Par exemple, pour extraire 10 caractères après le match, nous pouvons faire:
str = 'post ------ La chaîne continue ici'L'exemple ci-dessus rapportera 9 index après l'index où est la correspondance.
Conclusion
Dans ce guide, vous avez appris à vérifier si une chaîne contient une sous-chaîne spécifique à l'aide de l'inclusion? Méthode, expressions régulières et référence d'élément de chaîne.