string - 在空格上拆分字符串但忽略双引号之间的部分

标签 string powershell split

如何拆分这个字符串:

$Arguments = '/NOGUI /DATE /EXPAND 4 /SIZEUNIT 3 /SORTTYPE 0 /EXCEL "S:\Test\Brecht\Log Test\Report 13.xlsx" /SHEETNAME "Data set" /SCANPATH "S:\My Folder"'

进入以下数组:

/NOGUI
/DATE
/EXPAND
4
/SIZEUNIT
3
/SORTTYPE
0
/EXCEL
"S:\Test\Brecht\Log Test\Report 13.xlsx"
/SHEETNAME
"Data set"
/SCANPATH
"S:\My Folder"

当使用 $Argument.split(' ') 时,它还会拆分双引号字符串,这是不需要的。关于ScriptingGuy's blog ,他们解释了什么是可能的。但我似乎无法找到一种方法来忽略双引号之间的字符串。

最佳答案

$Arguments = '/NOGUI /DATE /EXPAND 4 /SIZEUNIT 3 /SORTTYPE 0 /EXCEL "S:\Test\Brecht\Log Test\Report 13.xlsx" /SHEETNAME "Data set" /SCANPATH "S:\My Folder"'

$splitString = [regex]::Split( $Arguments, ' (?=(?:[^"]|"[^"]*")*$)' )
$splitString

输出:

/NOGUI
/DATE
/EXPAND
4
/SIZEUNIT
3
/SORTTYPE
0
/EXCEL
"S:\Test\Brecht\Log Test\Report 13.xlsx"
/SHEETNAME
"Data set"
/SCANPATH
"S:\My Folder"  

关于string - 在空格上拆分字符串但忽略双引号之间的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50368246/

相关文章:

powershell - 解析具有多个IP的DNS地址

powershell - 如何在后台运行 powershell 脚本并接收 toast 通知?

mysql - 将大型 csv 文件转换为 sql 然后拆分它?

C# OLEDB 保护查询中的撇号

java - 非法转义字符 "\"

python - 使用 .join 函数从列表中连接 python 字符串不会输出想要的结果

c# - 如何概括我的算法以检测一个字符串是否是另一个字符串的旋转

powershell - $ Event.SourceEventArgs。<attribute>返回一个空或空对象

javascript - Jquery - 如何替换 div 中的一个单词?

jquery - 根据鼠标位置设置 HTML 字符串中各个字符的样式