首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Powershell按开始字符和结束字符将字符串拆分成数组

Powershell按开始字符和结束字符将字符串拆分成数组
EN

Stack Overflow用户
提问于 2020-06-29 22:52:16
回答 2查看 205关注 0票数 0

给定要从字符串中提取的值,其中每个值都由开始字符和结束字符包围,那么实现这一点的最有效方法是什么?

例如,要获取包含值的数组:a、b、c

代码语言:javascript
代码运行次数:0
运行
复制
$mystring = "=a; =b; =c;"
$CharArray = $mystring.Split("=").Split(";")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-29 23:08:21

有许多-replace-split.Split().Replace()的组合可用于此任务。下面是一些示例:

代码语言:javascript
代码运行次数:0
运行
复制
# Since each element is separated by a space, you can replace extraneous characters first
# -split operator alone splits by a space character
# This can have issues if your values contain spaces too
($mystring -replace '=|;').Split(' ')
-split ($mystring -replace '=|;')

# Since splitting creates white space at times, `Trim()` handles that.
# Because you expect an array after splitting, -ne '' will only return non-empty elements
$mystring.Split("=").Split(";").Trim() -ne ''

# Creates a array of of System.Char elements. Take note of the type here as it may not be what you want.
($mystring -replace ' ?=|;').ToCharArray()

# Uses Split(String[], StringSplitOptions) method
($myString -replace ' ?=').Split(';',[StringSplitOptions]::RemoveEmptyEntries)
票数 1
EN

Stack Overflow用户

发布于 2020-06-29 23:50:26

大卫,你所拥有的看起来很好,但这里有另一种方法。-replace方法处理空格(“")和等号(=)。

代码语言:javascript
代码运行次数:0
运行
复制
$mystring = "=a; =b; =c;"
$CharArray = $mystring -split ";" -replace " |=",""
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62640804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档