我希望从文件中选择所有不匹配指定模式的行;
我知道我必须使用select-string的-notMatch选项,但我无法理解它的使用方法。(我需要类似于GREP的-v功能的东西)任何示例都将非常有用。
提前感谢。
您不能使用以下内容:
-notmatch "(?<!(void|double|char|int)\s+|//.*)\b$f\b"
我认为你仍然希望使用match
而不是notmatch
。要排除函数返回类型或注释,您需要使用'负向先行断言'。也许这可以满足您的需求?
$f = 'my_function'
select-string test.txt -Pattern "(?<!(void|double|char|int)\s+|//.*)\b$f\b"
< p > 代码中的(?<!...)
表示如果在源文本中此时发现 '...',则不匹配。
select-string "temp.txt" -notMatch -pattern '(void|double|char|int) $f\('
- 55651909-089b-4e04-9408-47c5bf$f
是一个保存函数名称的变量,你需要将字符串放在双引号中。使用单引号会创建一个字符串字面量。 - Rynant