根据“|”拆分字符串PowerShell 中的字符

Split a string based on "|" character in PowerShell

我在 PowerShell 中有一个字符串变量,其中包含以下值:

NFP|8dc3b47a-48eb-4696-abe2-48729beb63c8

我试图通过识别“|”的索引将该字符串的开始部分放入它自己的变量中字符并使用子字符串函数提取字符串的第一部分,在本例中为“NFP”。我不确定如何逃避“|”所以我可以正确使用它。它似乎根本不认识它。我最近的尝试如下:

    $PolicyManual = $Item["PolicyManual"] 
    write-host $PolicyManual   #Displays NFP|8dc3b47a-48eb-4696-abe2-48729beb63c8

    if ($PolicyManual.Contains([regex]::escape("|"))) {
        $PolcyManual = $PolicyManual.Substring(0, $PolicyManual.IndexOf([regex]::escape("|")))
    }   

我确信这很简单,但我不知道如何让它工作。谁能为 PowerShell 新手提供帮助?

谢谢。

问题是 .contains 方法不知道 regex,因此您永远不会进入 if 条件。当您执行 [regex]::escape("|") 时,该方法正在查找文字 \|.

试试这个:

$PolicyManual = "NFP|8dc3b47a-48eb-4696-abe2-48729beb63c8"

if ($PolicyManual.Contains('|')) {
    $element0, $element1 = $PolicyManual.Split('|')
    $element0 #=> NFP
    $element1 #=> 8dc3b47a-48eb-4696-abe2-48729beb63c8
}