如何在PowerShell中分割字符串

1,050 阅读3分钟

在编程中,字符串是一个字符序列,被视为单一数据。字符串将存储文本信息。它是基本编程原则的一部分。

PowerShell是一种外壳和脚本语言。它本身就像一种编程语言。PowerShell脚本支持编程的所有主要原则,包括字符串。最主要的区别是,shell脚本一般是为了实现任务的自动化,而不需要建立一个专门的应用程序。

在本指南中,我们将在PowerShell中处理字符串。它还将演示如何分割字符串,并在各种情况下使用这些技术。

PowerShell中的字符串

首先,让我们快速浏览一下PowerShell字符串的样本。在PowerShell外壳中,运行以下命令。

$ $HelloWorld = "The quick brown fox jumps over the lazy dog"

它创建了一个临时变量 "HelloWorld",存储了字符串 "快速的棕色狐狸跳过懒惰的狗"。调用该变量将返回其值。

$ $HelloWorld

PowerShell中的数组

在编程中,数组是相同类型元素的顺序集合。它可以是任何数据类型。使用数组的工作非常简单。你可以使用for循环或while循环来遍历一个数组。数组的大小是已知的,这使得任务变得非常容易。

本节将作为数组的初步介绍。如果你有其他语言的编程背景,那么这应该更容易理解。在下面的例子中,我们要创建一个字符串的数组。

$ $HelloArray = "The", "quick", "brown", "fox"

调用变量 "HelloArray "将打印该数组的所有元素。

$ $HelloArray

你可以通过序列中的位置来调用数组中的单个元素。

$ $HelloArray[0]

注意,位置计数从0开始,所以

  • 元素1 -> 位置值为0。
  • 元素2 -> 位置值为1。
  • 元素3 -> 位置值为2。

以此类推。

分割字符串

将一个字符串分割成一个字符数组

任何字符串变量都会有一个默认的函数.*ToCharArray()*可以将字符串转换为Unicode字符数组。这是.NET框架功能的一部分。PowerShell允许在脚本中使用各种.NET功能。

让我们把HelloWorld转换成一个字符数组。

$ $HelloWorld = "The quick brown fox"
$ $HelloWorldArray = $HelloWorld.ToCharArray()

让我们看看结果。

$ $HelloWorldArray

我们可以检查数组中的各个元素。

$ $HelloWorldArray[0]
$ $HelloWorldArray[4]

基于分隔符的字符串分割

任何字符串变量都有少量的内置函数。在函数.Split()的帮助下,我们可以根据某个定界符来分割一个字符串。它将一个字符串分割成一个子字符串的数组。默认情况下,它使用空白字符作为定界符。然而,你也可以提供一个自定义的定界符。

让我们来看看它的操作。首先,声明我们的字符串变量。

$ $HelloWorld = "The quick brown fox jumps over the lazy dog"

现在,调用*.Split()*函数并将结果存储在第二个变量中。

$ $HelloWorldSplit = $HelloWorld.Split()

检查分割的结果。

$ $HelloWorldSplit

为了指定使用一个特定的字符进行分割,你必须将该值作为函数参数传递。在下一个例子中,我们将根据逗号(,)来分割字符串。

$ $HelloWorld = "The,quick,brown,fox"
$ $HelloWorldArray = $HelloWorld.Split(",")
$ $HelloWorldArray

另一个有趣的功能是对regex(正则表达式)的支持。你可以将正则表达式作为.Split()函数的参数,并对结果进行更精细的控制。

分割数字和字母

在许多情况下,一个字符串将由字母和数字组成。在标志"-Split "的帮助下,我们可以将所有的字符和数字分离成单独的数组。

让我们来看看它的实际效果。这里,我们有一个字母数字字符串。

$ $HelloWorld = "r1a2n3do0m6"

为了只得到字母,我们将使用标志"-Split"。至于参数,"\d "告诉我们要删除所有的数字。

$ $HelloWorldArray = $HelloWorld -Split "\d"
$ $HelloWorldArray

要想只得到数字,请使用"-Split "标志,参数为"\D"。

$ $HelloWorldArray = $HelloWorld -Split "\D"
$ $HelloWorldArray

杂项

修剪字符串

各种字符串可能在开头或结尾含有多余的字符。我们可以使用修剪函数将其删除。

$ " the quick brown fox ".Trim()

你还可以指定要修剪的字符。

$ "111000111".Trim("1")

使用*.Trim()函数将删除开头和结尾的多余字符。要只修剪特定的一边,我们可以使用.TrimStart().TrimEnd()*。它们的作用就像标签所暗示的那样。

$ "111000111".TrimStart("1")

$ "111000111".TrimEnd("1")

最后的想法

这篇文章展示了如何在PowerShell中分割字符串。它结合了两个编程原则--数组和字符串。由于.NET的支持,有各种功能可以用来操作字符串。它涵盖了如何将一个字符串转换为子字符串或字符的数组。