查找长度大于N的所有行

use*_*371 4 regex powershell

这是我的第一个问题.我刚刚开始使用Powershell.

假设我有一个文本文件,我想只匹配长度大于10个字符的行.所以我做了一个非常简单的正则表达式.

$reg = "^\w{0,10}$"
Run Code Online (Sandbox Code Playgroud)

我使用notmatch运算符.

$myTextFile | Select-String -NotMatch $reg
Run Code Online (Sandbox Code Playgroud)

这不起作用.我也试过了

$reg = "^[a-zA-Z0-9]{0,10}$"
Run Code Online (Sandbox Code Playgroud)

但这也不起作用.

有什么线索给我?非常感谢!

Adi*_*bar 6

你不需要正则表达式匹配.这样做:

Get-Content $myTextFile | ?{$_.Length -gt 10}
Run Code Online (Sandbox Code Playgroud)

如果你想用正则表达式做,那么点匹配任何字符.这将有效......

Get-Content $myTextFile | Select-String -NotMatch '^.{0,10}$'
Run Code Online (Sandbox Code Playgroud)

......但这更简单:

Get-Content $myTextFile | Select-String '.{11,}'
Run Code Online (Sandbox Code Playgroud)