我有以下脚本:
[string]$dnisList = @"
22222222n
11111111j
"@
[string]$dnis = $dnisList.split('`n').trim().ToUpper() | Select-String "(\d{8})([A-Z])" -AllMatches | ForEach {$_.Matches.value}
$dnis
output:
11111111j
output expected without modifying the list:
22222222n
11111111j
因为它没有使用第一个字符串,是因为它用 n 换行吗?我该怎么做才能在不修改列表的情况下接受它?
因为你使用单引号,
被读作“在反引号或'n'上分裂”---所以你的'n'
22222222n
被你的“吃掉”.Split()
:并且没有尾随字母,第一个字符串永远不会与您的正则表达式匹配
Select-String
。请注意,上面<NewLine>
仍然存在(作为第二个字符串中的第一个字符)——但这并不明显,因为它被“吃掉”了.Trim()
:反引号转义序列需要双引号:
接着: