Mar*_*arc 5 regex powershell split
考虑 ASCII 文本文件test1.txt:
a,b,c
d,e,f
Run Code Online (Sandbox Code Playgroud)
以及以下 Powershell 脚本test1.ps1:
$input -split "`n" | ForEach-Object {
$row = $_ -split ","
$row[0]
}
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,输出是:
a
d
Run Code Online (Sandbox Code Playgroud)
但是,如果我们将分隔符更改为|所有内容都会失败,如下所示test2.txt:
a|b|c
d|e|f
Run Code Online (Sandbox Code Playgroud)
以及以下 Powershell 脚本test2.ps1:
$input -split "`n" | ForEach-Object {
$row = $_ -split "|"
$row[0]
}
Run Code Online (Sandbox Code Playgroud)
输出几乎是空的。为什么会-split失败?
它似乎-split需要一个正则表达式,因此您需要像这样转义管道:
$row = $_ -split "\|"
Run Code Online (Sandbox Code Playgroud)
或者指定在SimpleMatch文字字符串或字符上拆分的选项:
$row = $_ -split "|", 0, "SimpleMatch"
Run Code Online (Sandbox Code Playgroud)
0MaxSubstrings的代表:“最大子串数,默认为全 (0)。”
来源:http : //ss64.com/ps/split.html
另外:Get-Help about_Split
| 归档时间: |
|
| 查看次数: |
3310 次 |
| 最近记录: |