所以我需要做的是匹配文字,直到我击中某个角色,然后停止.现在我正好想让它正常工作,此时我觉得我只是让自己更加困惑.我正在搜索的文字如下:
ServerA_logfile.log
ServerB_logfile.log
ServerC_logfile.log
Run Code Online (Sandbox Code Playgroud)
我需要做的只是返回服务器名称,并排除下划线字符后的所有内容.
这是我的代码:
Get-ChildItem \\fileshare\logs\ -Name -Filter *.log | foreach { [regex]::match($_ -replace "^_", "")}
Run Code Online (Sandbox Code Playgroud)
它返回的是......好吧,没有帮助,但那是我能得到的好.
我错过了什么?
你需要的是积极的前瞻(它是在比赛前为比赛量身定做的)
[Regex]::Match($_, "^.+(?=_)").Value
Run Code Online (Sandbox Code Playgroud)
Match()不返回字符串,而是返回一个Match对象.因此,Value应该访问该属性以从对象中提取字符串.
如果不清楚,使用的表达式指定查找:
^).+)(?=_)),这是积极的前瞻| 归档时间: |
|
| 查看次数: |
8673 次 |
| 最近记录: |