这是我的第一个问题。我刚刚开始使用Powershell。
假设我有一个文本文件,我想只匹配长度大于10个字符的行。所以我制作了一个非常简单的正则表达式。
$reg = "^\w{0,10}$"
我使用notmatch运算符。
$myTextFile | Select-String -NotMatch $reg
这不起作用。我也试过
$reg = "^[a-zA-Z0-9]{0,10}$"
但这也不起作用。
对我有任何线索?非常感谢!
答案 0 :(得分:6)
您不需要正则表达式匹配。就这样做:
Get-Content $myTextFile | ?{$_.Length -gt 10}
如果您想使用正则表达式,则点匹配任何字符。这将有效...
Get-Content $myTextFile | Select-String -NotMatch '^.{0,10}$'
......但这更简单:
Get-Content $myTextFile | Select-String '.{11,}'