Séparer une chaîne avec des caractères d'espaces variables dans Powershell
Je voudrais diviser une chaîne sorcière a une variable de caractères espace, mais une obtenir un grand nombre de lignes vides sorcière je tiens à éliminer.
ce code
$text = "Video Video Audio Audio VBI VBI"
$text.Split()
sorties cette
Video
Video
Audio
Audio
VBI
VBI
PS H:\>
et je voudrais que cette
Video
Video
Audio
Audio
VBI
VBI
source d'informationauteur Ionut
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser PowerShell est
-split
opérateur qui utilise des expressions régulières.Comme le fait remarquer @StijnDeVos, ce n'est pas l'enlever avant/après les espaces.
Ici, le
\s
représente les caractères espace, et la+
correspond à l'un ou plusieurs d'entre eux. Raison de plus pour y aller avec @user3554001 de réponse.Une autre option consiste à filtrer les chaînes vides.
vous pouvez utiliser ce modèle pour éliminer les lignes vides :
-split "Video Video Audio Audio VBI VBI"
Essayer cela, il remplace de plus d'une instance d'un espace avec une seule instance avant l'exécution de la commande diviser:
L'-split opérateur prend une regex argument, il suffit donc de faire correspondre plusieurs caractères espace (\s+):
Tous les espaces après le dernier qui peut vous laisser un nul d'entrée, de sorte que le match va éliminer tout ce qui n'est espaces.
autre solution :
ou :