如何在PowerShell中分割含空格的字符串提取指定内容存入数组
PowerShell 提取目标字段实现方案
原始字符串:
"Device: ILO 5 Firmware Version : 2:33 Firmware date : 10-10-2020"
目标数组元素:ILO 5、2:33、10-10-2020
方法1:正则匹配(兼容性最优,不会受字段值内部特殊符号影响)
利用固定字段前缀做正则捕获,直接得到三个目标值:
# 定义原始字符串 $rawStr = "Device: ILO 5 Firmware Version : 2:33 Firmware date : 10-10-2020" # 正则匹配捕获三个目标分组 $matchResult = [regex]::Match($rawStr, 'Device:\s*(.*?)\s*Firmware Version :\s*(.*?)\s*Firmware date :\s*(.*)') # 提取分组值得到目标数组 $targetArray = $matchResult.Groups[1..3].Value
执行后直接访问$targetArray即可得到所需数组,可通过下标$targetArray[0]/$targetArray[1]/$targetArray[2]分别获取三个元素。
方法2:字符串替换拆分(逻辑更易理解)
先把固定的字段前缀替换为统一分隔符,再拆分过滤得到结果:
# 定义原始字符串 $rawStr = "Device: ILO 5 Firmware Version : 2:33 Firmware date : 10-10-2020" # 替换所有字段前缀为统一分隔符| $processedStr = $rawStr -replace 'Device: | Firmware Version : | Firmware date : ', '|' # 拆分后过滤空值得到目标数组 $targetArray = $processedStr -split '\|' | Where-Object { $_ }
内容的提问来源于stack exchange,提问作者Puneet Tiwari
相关产品推荐
相关产品推荐

