所以我需要做的是匹配文本,直到我打到某个字符,然后停止。现在,我有一点时间让它正常工作,而现在我想让自己更加困惑。我正在搜索的文本如下所示:
ServerA_logfile.log
ServerB_logfile.log
ServerC_logfile.log
我需要做的只是返回服务器名称,并排除下划线字符之后的所有内容。
这是我的代码:
Get-ChildItem \\fileshare\logs\ -Name -Filter *.log | foreach { [regex]::match($_ -replace "^_", "")}
它返回的是...。很好,没有帮助,但是我所能得到的。
我想念什么?
最佳答案
我知道需要使用正则表达式,但是使用内置的split
命令也一样容易(也许更容易)。
这是代码:
Get-ChildItem \\fileshare\logs\ -Name -Filter *.log | foreach { $_.Split("_")[0] }
关于regex - Powershell正则表达式-匹配到字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12410397/