使用powershell查找与两个单独的正则表达式匹配的文件

ten*_*npn 3 regex powershell powershell-2.0

我想找到可以匹配两个正则表达式,例如具有至少一个所有文件的任何文件bat,hat,cat 以及noun.这将是可以同时匹配正则表达式的任何文件[bhc]atnoun.

正则表达式参数select-string似乎只能逐行工作.看起来你可以传入由逗号(select-string -pattern "[bhc]at","noun")分隔的多个模式,但它匹配其中之一,而不是两者.

JNK*_*JNK 5

您可以随时使用两个过滤器:

dir | ? {(gc $_) -match '[bhc]at'} | ?{(gc $_) -match 'noun'}
Run Code Online (Sandbox Code Playgroud)

这只是获取与第一个条件匹配的所有对象,并检查第二个条件的结果集.我想它会比检查两者更快,因为很多文件只会被检查一次,然后过滤掉.