Powershell : -match and p



我有一个文本文件,其中包含很多地址和内容。我需要知道这个文本文件是否包含一个地址,它被放在一个字符串中——让我们称之为"$adress")。为了实现这一点,我将.txt放入变量"$list"中,然后使用-match运算符查看$list是否包含$adress。

if($list -Match $adress) {
            $test = "CONTAINS"
            $test
}

问题是,它根本不起作用。看起来他无法处理"/p",这是地址的一部分。它应该做什么吗?我不知道该怎么处理。

-match运算符使用正则表达式。这意味着任何后面跟着字符的反斜杠都被解释为转义序列,而不是文字字符。

您可以使用Regex.Escape()方法转义模式中的特殊字符(包括斜线):

if($list -match [regex]::Escape($adress)){
    "List contains at least one string matching $adress"
}

最新更新