我使用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
}
答案 0 :(得分:2)
将您的模式更改为:
$Pattern = 'Order Number [\u2010-\u2015-]'
Word有AutoFormat feature喜欢自动将连字符变成破折号 - 这可能就是这种情况。
英语Office将连字符转换为带有代码点值0x2013
的unicode字符,但它可能因语言环境和已安装的语言包而异,因此字符集从0x2010
到0x2015
+ -