我使用正则表达式在Powershell中查找字符串,匹配函数返回空字符串行以及匹配的行。
对于以下四行文本文件input.txt,
[abc]
abc
[123]
123
以下代码打印出abc/blank line/123/blank line
。我预计它只打印出abc
和123
,想知道这是怎么发生的。
$readArray = Get-Content(input.txt)
foreach($line in $readArray) {
$re = [regex] *** // Find the string in bracket
$key = $re.match($line)
if($key -ne $null) {
write-host -$key.group[1].value
}
}
答案 0 :(得分:2)
试试这个(使用select-string) -
Get-Content -FilePath input.txt |
Select-String '\[(.+?)\]') | ForEach-Object {$_.Matches[0].Groups[1].Value}
答案 1 :(得分:1)