Contenu principal

contains

R2026b

Déterminer si des chaînes de caractères ou des noms de catégories contiennent un motif

Description

TF = contains(str,pat) renvoie 1 (true) si str contient le motif spécifié et 0 (false) dans le cas contraire.

Si pat est un tableau contenant plusieurs motifs, contains renvoie 1 si l’un des éléments de pat figure dans str.

Si str est un tableau de chaînes de caractères, un cell array ou un tableau catégoriel, TF est un tableau logique de même taille que str.

exemple

TF = contains(str,pat,IgnoreCase=true) ignore la casse pour déterminer si str contient pat.

exemple

Exemples

réduire tout

Créez un tableau de chaînes de caractères avec des noms, dont certains contiennent Paul.

Vous pouvez créer des chaînes de caractères avec des guillemets anglais.

str = ["Mary Ann Jones","Paul Jay Burns","John Paul Smith"]
str = 1×3 string
    "Mary Ann Jones"    "Paul Jay Burns"    "John Paul Smith"

Renvoyez un tableau logique où la position de chaque élément égal à 1 correspond à la position d’une chaîne de caractères de str contenant Paul.

pat = "Paul";
TF = contains(str,pat)
TF = 1×3 logical array

   0   1   1

Affichez les chaînes de caractères qui contiennent Paul. Réindexez str avec TF.

str(TF)
ans = 1×2 string
    "Paul Jay Burns"    "John Paul Smith"

Créez un tableau de chaînes de caractères contenant des adresses.

str = ["221B Baker St.","Tour Eiffel Champ de Mars","4059 Mt Lee Dr."]
str = 1×3 string
    "221B Baker St."    "Tour Eiffel Champ de Mars"    "4059 Mt Lee Dr."

Pour rechercher les adresses qui contiennent des nombres, créez un motif correspondant à un nombre arbitraire de chiffres avec la fonction digitsPattern.

pat = digitsPattern
pat = pattern
  Matching:

    digitsPattern

Renvoyez un tableau logique indiquant quelles chaînes de caractères contiennent des chiffres. Affichez les chaînes de caractères correspondantes.

TF = contains(str,pat)
TF = 1×3 logical array

   1   0   1

str(TF)
ans = 1×2 string
    "221B Baker St."    "4059 Mt Lee Dr."

Recherchez les chaînes de caractères contenant une série de chiffres suivie d’une seule lettre. Vous pouvez créer des motifs plus complexes en combinant des motifs simples.

pat = digitsPattern + lettersPattern(1)
pat = pattern
  Matching:

    digitsPattern + lettersPattern(1)

TF = contains(str,pat);
str(TF)
ans = 
"221B Baker St."

Pour une liste des fonctions qui créent des objets pattern, consultez pattern.

Créez un tableau de chaînes de caractères avec des noms dont certains contiennent soit Ann, soit Paul.

str = ["Mary Ann Jones","Christopher Matthew Burns","John Paul Smith"]
str = 1×3 string
    "Mary Ann Jones"    "Christopher Matthew Burns"    "John Paul Smith"

Recherchez les éléments de str qui contiennent soit Ann, soit Paul.

pat = ["Ann","Paul"];
TF = contains(str,pat)
TF = 1×3 logical array

   1   0   1

Réindexez str avec TF.

str(TF)
ans = 1×2 string
    "Mary Ann Jones"    "John Paul Smith"

Créez un tableau de chaînes de caractères contenant des noms. Déterminez quels noms contiennent anne en ignorant la casse.

Vous pouvez créer des chaînes de caractères avec des guillemets anglais.

str = ["Anne","Elizabeth","Marianne","Tracy"]
str = 1×4 string
    "Anne"    "Elizabeth"    "Marianne"    "Tracy"

pat = "anne";
TF = contains(str,pat,IgnoreCase=true)
TF = 1×4 logical array

   1   0   1   0

Affichez les chaînes de caractères qui contiennent anne. Réindexez str avec TF.

str(TF)
ans = 1×2 string
    "Anne"    "Marianne"

Créez un vecteur de caractères contenant une liste d’aliments. Déterminez si les noms de différents aliments figurent dans le vecteur de caractères.

chr = 'peppers, onions, and mushrooms';
TF = contains(chr,'onion')
TF = logical
   1

TF = contains(chr,'pineapples')
TF = logical
   0

Depuis R2026b

Chargez les données relatives aux pannes de réseau électrique aux États-Unis sous forme de table. Convertissez la variable Cause en tableau catégoriel.

T = readtable("outages.csv");
T.Cause = categorical(T.Cause);

Déterminez si les noms de catégories de Cause contiennent "storm". La fonction contains renvoie un tableau logique qui indique quels éléments du tableau catégoriel Cause ont des noms de catégories contenant "storm".

TF = contains(T.Cause,"storm",IgnoreCase=true)
TF = 1468×1 logical array

   1
   1
   1
   0
   1
   0
   0
   0
   0
   0
   0
   0
   1
   1
   1
      ⋮

Affichez uniquement les lignes de la table où la cause contient "storm".

T(TF,:)
ans = 684×6 table
       Region           OutageTime        Loss     Customers     RestorationTime        Cause    
    _____________    ________________    ______    __________    ________________    ____________

    {'SouthWest'}    2002-02-01 12:18    458.98    1.8202e+06    2002-02-07 16:50    winter storm
    {'SouthEast'}    2003-01-23 00:49    530.14    2.1204e+05                 NaT    winter storm
    {'SouthEast'}    2003-02-07 21:15     289.4    1.4294e+05    2003-02-17 08:14    winter storm
    {'MidWest'  }    2002-03-16 06:18    186.44    2.1275e+05    2002-03-18 23:23    severe storm
    {'SouthEast'}    2002-09-01 18:22    95.917         36759    2002-09-01 19:12    severe storm
    {'SouthEast'}    2003-09-27 07:32       NaN    3.5517e+05    2003-10-04 07:02    severe storm
    {'West'     }    2003-11-12 06:12    254.09    9.2429e+05    2003-11-17 02:04    winter storm
    {'NorthEast'}    2004-11-13 10:42       NaN    1.4227e+05    2004-11-19 02:31    winter storm
    {'SouthEast'}    2004-12-06 23:18       NaN         37136    2004-12-14 03:21    winter storm
    {'SouthEast'}    2002-12-12 18:08    46.918    1.0698e+05    2002-12-14 18:43    winter storm
    {'West'     }    2004-12-21 18:50    112.05     7.985e+05    2004-12-29 03:46    winter storm
    {'West'     }    2002-12-16 13:43    70.752    4.8193e+05    2002-12-19 09:38    winter storm
    {'NorthEast'}    2004-12-26 22:18    255.45    1.0444e+05    2004-12-27 14:11    winter storm
    {'NorthEast'}    2003-12-17 15:11       NaN         66692    2003-12-19 07:22    winter storm
    {'SouthEast'}    2005-03-08 16:37    1339.2    4.3003e+05    2005-03-10 20:42    winter storm
    {'MidWest'  }    2002-03-26 01:59    388.04    5.6422e+05    2002-03-28 19:55    winter storm
      ⋮

.

Arguments d'entrée

réduire tout

Tableau en entrée, spécifié sous forme de tableau de chaînes de caractères, de cell array de vecteurs de caractères ou de tableau catégoriel (depuis R2026b).

Motif à rechercher, spécifié sous une des formes suivantes :

  • Tableau de chaînes de caractères

  • Vecteur de caractères

  • Cell array de vecteurs de caractères

  • Tableau pattern

Conseils

  • Une chaîne de caractères ne contenant aucun caractère ("") ou un vecteur de caractères ne contenant aucun caractère ('') est une sous-chaîne de chaque chaîne de caractères. Ainsi, contains trouve toujours ces sous-chaînes dans tout texte en entrée. Pour plus d’informations, consultez Test for Empty Strings and Missing Values.

Capacités étendues

développer tout

Historique des versions

Introduit dans R2016b

développer tout