在powershell中搜索文字连字符

时间:2016-07-20 17:25:42

标签: powershell

我使用powershell将多页word文档拆分为单个页面,然后删除我不需要的所有页面。问题是我正在复制文本并搜索模式,连字符会让我失望。这是相关的代码。如果我删除连字符并只搜索“订单号”,它可以工作,但它返回两页而不是我想要的模式“订单号 - ”。我已经尝试了很多配置,逃避了炒作` - , - %等但没有任何作用,我运行的所有内容包括连字符只输出8个DeleteMe页面,而不是1个Docuemnt和7个DeleteMe

    $Pattern = "Order Number -"
    $rngPg.End = $word.Selection.Start
    $rngPg.Copy()
    #Get Name 
    $regex = [Regex]::Match($rngPg.Text, $Pattern) 
    if($regex.Success)
    {
    $id = "Document" + $i 
    }
    else
    {
    $id = "DeleteMe_" + $i 
    }

1 个答案:

答案 0 :(得分:2)

将您的模式更改为:

$Pattern = 'Order Number [\u2010-\u2015-]'

说明:

Word有AutoFormat feature喜欢自动将连字符变成破折号 - 这可能就是这种情况。

英语Office将连字符转换为带有代码点值0x2013的unicode字符,但它可能因语言环境和已安装的语言包而异,因此字符集从0x20100x2015 + -