如何在 PowerShell 中将字符串拆分为变量?
在处理 PowerShell 自动化脚本时,我需要将字符串拆分为变量。我尝试了不同的方法。在此 PowerShell 脚本中,我将通过示例解释使用各种方法在 PowerShell 中将字符串拆分为变量的多种方法。
要在 PowerShell 中将字符串拆分为变量,您可以使用多种方法。 -split 运算符根据指定的分隔符将字符串拆分为数组,例如 $cities -split “, ” 用于逗号分隔值。 String 类的 Split 方法允许使用多个分隔符,例如 $info.Split(@(“|”, “, “))。对于更复杂的解析,ConvertFrom-String 可以将分隔字符串转换为具有命名属性的对象,并且使用 -match 的正则表达式可以将字符串的特定部分捕获到单独的变量中。
在 PowerShell 中将字符串拆分为变量
以下是使用不同示例在 PowerShell 中将字符串拆分为变量的各种方法。
1.使用-split运算符
-split 运算符是在 PowerShell 中将字符串拆分为变量的最简单方法之一。它根据您指定的分隔符将字符串拆分为数组。
以下是在 PowerShell 中将字符串拆分为变量的示例。
$cities = "New York, Los Angeles, Chicago, Houston, Phoenix"
$cityArray = $cities -split ", "
$city1 = $cityArray[0]
$city2 = $cityArray[1]
$city3 = $cityArray[2]
$city4 = $cityArray[3]
$city5 = $cityArray[4]
$city1, $city2, $city3, $city4, $city5
输出 :
New York
Los Angeles
Chicago
Houston
Phoenix在此示例中,字符串在每个逗号后跟一个空格处分割并存储到变量中。
您可以在下面的屏幕截图中看到输出:
阅读如何在 PowerShell 中按单词拆分字符串?
2. 使用分割法
PowerShell 还允许您使用 String 类的 Split 方法来拆分字符串并将其存储到变量中。
这是一个例子。
$info = "John Doe|123 Main St|New York, NY|10001"
$delimiter = @("|", ", ")
$infoArray = $info.Split($delimiter, [System.StringSplitOptions]::None)
$name = $infoArray[0]
$address = $infoArray[1]
$city = $infoArray[2]
$state = $infoArray[3]
$zip = $infoArray[4]
$name, $address, $city, $state, $zip使用 VS code 执行脚本后,您可以在下面的屏幕截图中看到输出。
3. 使用 ConvertFrom-String
ConvertFrom-String cmdlet 是在 PowerShell 中将字符串拆分为变量的另一种方法。
这是完整的代码:
$data = "Name: John Doe, Address: 123 Main St, City: New York, State: NY, Zip: 10001"
$parsedData = $data | ConvertFrom-String -PropertyNames 'Name', 'Address', 'City', 'State', 'Zip'
$name = $parsedData.Name
$address = $parsedData.Address
$city = $parsedData.City
$state = $parsedData.State
$zip = $parsedData.Zip
$name, $address, $city, $state, $zip您可以在下面的屏幕截图中看到我使用 VS code 执行 PowerShell 脚本后的输出。
阅读如何在 PowerShell 中按换行符拆分字符串?
4. 将正则表达式与 -match 一起使用
下面是另一个示例,说明如何在 PowerShell 中使用带有 -match 的正则表达式将字符串拆分为变量。
这是一个完整的 PowerShell 脚本。
$address = "John Doe, 123 Main St, New York, NY 10001"
if ($address -match "^(.*), (.*), (.*), (.*) (\d+)$") {
$name = $matches[1]
$street = $matches[2]
$city = $matches[3]
$state = $matches[4]
$zip = $matches[5]
}
$name, $street, $city, $state, $zip我执行了上面的 PowerShell 脚本,您可以在下面的屏幕截图中看到输出:
结论
在本 PowerShell 教程中,我解释了如何使用各种方法在 PowerShell 中将字符串拆分为变量。我希望这有帮助。



