我正在尝试解析带有错误代码的文件。我只想返回文件底部的第一次出现。
到目前为止,我已经让这个正则表达式搜索错误代码编号,它使用 Multiline 选项返回整行,但它返回文件中的所有行,而不仅仅是最后一行。
^.*?\b(639|640|460|458|664|148)\b.*$
我正在使用 powershell,所以如果您有一个使用 powershell 的示例,那就太好了。
谢谢你。
我正在尝试解析带有错误代码的文件。我只想返回文件底部的第一次出现。
到目前为止,我已经让这个正则表达式搜索错误代码编号,它使用 Multiline 选项返回整行,但它返回文件中的所有行,而不仅仅是最后一行。
^.*?\b(639|640|460|458|664|148)\b.*$
我正在使用 powershell,所以如果您有一个使用 powershell 的示例,那就太好了。
谢谢你。
假设您的正则表达式对于匹配一行是正确的,那么您应该能够执行以下操作:
$pattern = '^.*?\b(639|640|460|458|664|148)\b.*$'
$content = Get-Content c:\somefile.txt
for ($i = $content.Length - 1; $i -ge 0; $i--) {
if ($content[$i] -match $pattern) {
$matches[1]
break
}
}
我会用Select-String
这个:
$filename = 'C:\path\to\input.txt'
$pattern = '\b(639|640|460|458|664|148)\b'
Get-Content $filename | Select-String $pattern | select -Last 1