在Powershell中用字符串拆分

时间:2016-06-02 14:57:51

标签: powershell split sharepoint-2013

我遇到了一个问题,我编写了一个用于拆分Sharepoint特定ID的快速函数({id};#{name}):

function GetOnlyValue {
param( 
[string] $fullValue
)

if(![string]::IsNullOrEmpty($fullValue))
{
    # On regarde si on a la valeur
    if($fullValue -Like "*;#*")
    {
        $array = $fullValue -split ";#", 2, "simplematch"

        return $array[-1]
    }
}

return $fullValue
}

但是这个函数完成了一半的工作,因为,例如,当我传递一个像这样形成的值时:myId; #myName函数返回给我这个值:“#myName”而不是“myName”。

感谢您的帮助!

2016年2月2日编辑:此功能包含在我在脚本中导入的模块中。我使用它与Sharepoint 2013网站相关联,浏览SPList的每个SPListItem:

$formation = GetOnlyValue -fullValue $spItem["Formation"]

2 个答案:

答案 0 :(得分:1)

我将正则表达式与捕获组一起使用:

function GetOnlyValue
{
    Param
    ( 
        [string]$fullValue
    )

    if($fullValue -match '(.*);#(.*)'){
        $Matches[2]
    }
}

答案 1 :(得分:0)

我无法重现您的问题,但您可以使用-replace

简化脚本
function GetOnlyValue {
    param( 
        [string] $fullValue
    )

    $fullValue -replace '^.*#'
}