RUBRIQUE about_Split DESCRIPTION COURTE Explique comment utiliser l'opérateur split pour fractionner une ou plusieurs chaînes en sous-chaînes. DESCRIPTION LONGUE L'opérateur split fractionne une ou plusieurs chaînes en sous-chaînes. Vous pouvez modifier les éléments suivants de l'opération split : -- Délimiteur. La valeur par défaut est un espace blanc, mais vous pouvez spécifier les caractères, les chaînes, les modèles ou blocs de script qui spécifient le délimiteur. -- Nombre maximal de sous-chaînes. La valeur par défaut est le retour de toutes les sous-chaînes. Si vous spécifiez un nombre inférieur au nombre de sous-chaînes, les sous-chaînes restantes sont concaténées dans la dernière sous-chaîne. -- Options qui spécifient les conditions dans lesquelles le délimiteur est mis en correspondance, telles que SimpleMatch et Multiline. SYNTAXE Le diagramme suivant affiche la syntaxe pour l'opérateur -split. Les noms de paramètres n'apparaissent pas dans la commande. Incluez uniquement les valeurs de paramètre. Les valeurs doivent apparaître dans l'ordre spécifié dans le diagramme de syntaxe. -Split <String> <String> -Split <Delimiter>[,<Max-substrings>[,"<Options>"]] <String> -Split {<ScriptBlock>} [,<Max-substrings>] Dans toute instruction split, vous pouvez remplacer -split par -iSplit ou -cSplit. Les opérateurs -iSplit et -split ne respectent pas la casse. L'opérateur -cSplit respecte la casse, ce qui signifie que la casse est prise en compte lorsque les règles du délimiteur sont appliquées. PARAMÈTRES <String> Spécifie une ou plusieurs chaînes à fractionner. Si vous envoyez plusieurs chaînes, toutes les chaînes sont fractionnées à l'aide des mêmes règles du délimiteur. Exemple : -split "rouge jaune bleu vert" rouge jaune bleu vert <Delimiter> Caractères qui identifient la fin d'une sous-chaîne. Le délimiteur par défaut est un espace blanc, y compris les espaces et les caractères non imprimables, tels que les caractères nouvelle ligne (`n) et tabulation (`t). Lorsque les chaînes sont fractionnées, le délimiteur est omis de toutes les sous-chaînes. Exemple : "Nom:Prénom:Adresse" -split ":" Nom Prénom Adresse <Max-substrings> Spécifie le nombre maximal de sous-chaînes retournées. La valeur par défaut est celle de toutes les sous-chaînes fractionnées par le délimiteur. S'il y a plus de sous-chaînes, elles sont concaténées à la dernière sous-chaîne. S'il y a moins de sous-chaînes, toutes les sous-chaînes sont retournées. Une valeur 0 et des valeurs négatives retournent toutes les sous-chaînes. Si vous envoyez plusieurs chaînes (un tableau de chaînes) à l'opérateur split, la limite Max-substrings est appliquée séparément à chaque chaîne. Exemple : $c = "Mercure,Vénus,Terre,Mars,Jupiter,Saturne,Uranus,Neptune" $c -split ",", 5 Mercure Vénus Terre Mars Jupiter,Saturne,Uranus,Neptune <ScriptBlock> Expression qui spécifie des règles pour l'application du délimiteur. L'expression doit prendre la valeur $true ou $false. Placez le bloc de script entre accolades. Exemple : $c = "Mercure,Vénus,Terre,Mars,Jupiter,Saturne,Uranus,Nept une" $c -split {$_ -eq "e" -or $_ -eq "p"} M rcur,Vénus,Trr,Mars,Ju it r,Saturn,Uranus,N tun <Options> Placez le nom d'option entre guillemets. Les options sont valides seulement si le paramètre <Max-substrings> est utilisé dans l'instruction. La syntaxe du paramètre Options est la suivante : "SimpleMatch [,IgnoreCase]" "[RegexMatch] [,IgnoreCase] [,CultureInvariant] [,IgnorePatternWhitespace] [,ExplicitCapture] [,Singleline |,multiline]" Les options SimpleMatch sont : -- SimpleMatch : utilise la comparaison de chaînes simple lors de l'évaluation du délimiteur. Ne peut pas être utilisée avec RegexMatch. -- IgnoreCase : force la mise en correspondance avec non-respect de la casse, même si l'opérateur -cSplit est spécifié. Les options RegexMatch sont : -- RegexMatch : utilise la correspondance d'expression régulière pour évaluer le délimiteur. Il s'agit du comportement par défaut. Ne peut pas être utilisée avec SimpleMatch. -- IgnoreCase : force la mise en correspondance avec non-respect de la casse, même si l'opérateur -cSplit est spécifié. -- CultureInvariant : ignore les différences culturelles de langue lorsque le délimiteur est évalué. Valide uniquement avec RegexMatch. -- IgnorePatternWhitespace : ignore l'espace blanc sans séquence d'échappement et les commentaires marqués du signe dièse (#). Valide uniquement avec RegexMatch. -- Multiline : le mode Multiline reconnaît le début et la fin des lignes et des chaînes. Valide uniquement avec RegexMatch. La valeur par défaut est Singleline. -- Singleline : le mode Singleline reconnaît uniquement le début et la fin des chaînes. Valide uniquement avec RegexMatch. La valeur par défaut est Singleline. -- ExplicitCapture : ignore les groupes de correspondance non nommés afin que seuls les groupes de capture explicites soient retournés dans la liste de résultats. Valide uniquement avec RegexMatch. OPÉRATEURS SPLIT UNAIRE et BINAIRE L'opérateur split unaire (-split <string>) a une priorité plus élevée qu'une virgule. Par conséquent, si vous envoyez une liste de chaînes séparée par des virgules à l'opérateur split unaire, seule la première chaîne (avant la première virgule) est fractionnée. Pour fractionner plusieurs chaînes, utilisez l'opérateur split binaire (<string> -split <delimiter>). Placez toutes les chaînes entre parenthèses ou stockez les chaînes dans une variable, puis envoyez la variable à l'opérateur split. Considérez l'exemple suivant : -split "1 2", "a b" 1 2 a b "1 2", "a b" -split " " 1 2 a b -split ("1 2", "a b") 1 2 a b $a = "1 2", "a b" -split $a 1 2 a b EXEMPLES L'instruction suivante fractionne la chaîne au niveau de l'espace blanc. C:\PS> -split "Windows PowerShell 2.0`nWindows PowerShell à distance" Windows PowerShell 2.0 Windows PowerShell à distance L'instruction suivante fractionne la chaîne au niveau de toutes les virgules. C:\PS> "Mercure,Vénus,Terre,Mars,Jupiter,Saturne,Uranus,Neptune" -split ',' Mercure Vénus Terre Mars Jupiter Saturne Uranus Neptune L'instruction suivante fractionne la chaîne au niveau du modèle " er ". C:\PS> "Mercure,Vénus,Terre,Mars,Jupiter,Saturne,Uranus,Neptune" -split 'er' M cure,Vénus,Tre,Mars,Jupit ,Saturne,Uranus,Neptune L'instruction suivante exécute un fractionnement qui respecte la casse au niveau de la lettre " N ". C:\PS> "Mercure,Vénus,Terre,Mars,Jupiter,Saturne,Uranus,Neptune" -cSplit 'N' Mercure,Vénus,Terre,Mars,Jupiter,Saturne,Uranus, eptune L'instruction suivante fractionne la chaîne au niveau de " e " et " t ". C:\PS> "Mercure,Vénus,Terre,Mars,Jupiter,Saturne,Uranus,Neptune" -split '[et]' M rcur,Vénus, rr ,Mars,Jupi r,Sa urn,Uranus,N p un L'instruction suivante fractionne la chaîne au niveau de " e " et " r ", mais limite les sous-chaînes résultantes à six sous-chaînes. C:\PS> "Mercure,Vénus,Terre,Mars,Jupiter,Saturne,Uranus,Neptune" -split '[er]', 6 M cu ,Vénus ,T ,Mars,Jupiter,Saturne,Uranus,Neptune L'instruction suivante fractionne une chaîne en trois sous-chaînes. C:\PS> "a,b,c,d,e,f,g,h" -split ",", 3 a b c,d,e,f,g,h L'instruction suivante fractionne deux chaînes en trois sous-chaînes. (La limite est appliquée indépendamment à chaque chaîne.) C:\PS> "a,b,c,d", "e,f,g,h" -split ",", 3 a b c,d e f g,h L'instruction suivante fractionne chaque ligne dans la chaîne here au niveau du premier chiffre. Elle utilise l'option Multiline pour reconnaître le début de chaque ligne et de chaque chaîne. Le 0 représente la valeur " retourner tout " du paramètre Max-substrings. Vous pouvez utiliser des options, telles que Multiline, uniquement lorsque la valeur Max-substrings est spécifiée. C:\PS> $a = @' 1La première ligne. 2La deuxième ligne. 3La troisième des trois lignes. '@ C:\PS> $a -split "^\d", 0, "multiline" La première ligne. La deuxième ligne. La troisième des trois lignes. L'instruction suivante utilise l'option SimpleMatch pour conduire l'opérateur -split à interpréter le délimiteur point (.) littéralement. Avec la valeur par défaut, RegexMatch, le point entre guillemets (".") est interprété comme pouvant correspondre à tout caractère à l'exception d'un caractère de nouvelle ligne. Par conséquent, l'instruction split retourne une ligne vierge pour chaque caractère sauf celui de nouvelle ligne. Le 0 représente la valeur " retourner tout " du paramètre Max-substrings. Vous pouvez utiliser des options, telles que SimpleMatch, uniquement lorsque la valeur Max-substrings est spécifiée. C:\PS> "Cela.est.un.test" -split ".", 0, "simplematch" Cela est un test L'instruction suivante fractionne la chaîne au niveau de l'un des deux délimiteurs, selon la valeur d'une variable. C:\PS> $i = 1 C:\PS> $c = "Nom, Prénom; Adresse, Ville, État, Code postal" C:\PS> $c -split {if ($i -lt 1) {$_ -eq ","} else {$_ -eq ";"}} Nom, Prénom Adresse, Ville, État, Code postal Les instructions split suivantes fractionnent un fichier XML d'abord au niveau du crochet pointu, puis au niveau du point-virgule. Le résultat est une version lisible du fichier XML. C:\PS> get-process powershell | export-clixml ps.xml C:\PS> $x = import-clixml ps.xml C:\PS> $x = $x -split "<" C:\PS> $x = $x -split ";" Pour afficher le résultat, tapez " $x ". C:\PS> $x @{__NounName=Process Name=powershell Handles=428 VM=150081536 WS=34840576 PM=36253696 ... VOIR AUSSI Split-Path about_Operators about_Comparison_Operators about_Join