选择字符串,搜索通配符

时间:2017-10-24 23:08:01

标签: powershell

我希望使用PowerShell查找类似于以下行的匹配

  1. (C)菠萝芒果
  2. (c)葡萄
  3. (C)mango
  4. 结果应该返回1和3.但是我的下面的命令似乎不正确。你能帮忙吗?

    Get-ChildItem "D:\PATH" -Recurse | Select-String -Pattern "(C)*mango" > "SearchMango.txt"
    

1 个答案:

答案 0 :(得分:1)

默认情况下,

Select-String执行正则表达式匹配,并且在正则表达式中使用括号来对字符进行分组。您无法使用-SimpleMatch参数,因为您正在那里寻找通配符。

因此,您需要使用\(反斜杠)字符转义括号。此外,您需要.前面的*才能获得"任何"正则表达式中的字符。

Get-ChildItem "D:\PATH" -Recurse | Select-String -Pattern "\(C\).*mango" > "SearchMango.txt"

或者,如果您只在您的(C)和"芒果"

之间匹配字母字符或空格
Get-ChildItem "D:\PATH" -Recurse | Select-String -Pattern "\(C\)[\w\s]*mango" > "SearchMango.

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_regular_expressions?view=powershell-5.1

此外,Regexr(https://regexr.com/)是测试你的正则表达式的好网站。尝试样本列表中的第二个 - 只需记住设置"不区分大小写"标志。