我正在使用 powershell 将多页 word 文档拆分为单页,然后删除我不需要的所有页面。问题是我正在复制文本并搜索模式,而连字符让我失望。这是相关代码。如果我删除连字符并只搜索“订单号”,它会起作用,但它会返回两页,而不是我想要的带有“订单号 -”模式的一页。我尝试了很多配置,转义连字符`-、--% 等但没有任何效果,我运行的所有内容包括连字符都只输出 8 个 DeleteMe 页面,而不是 1 个文档和 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
}
请您参考如下方法:
将您的模式更改为:
$Pattern = 'Order Number [\u2010-\u2015-]'
解释:
Word 有一个 AutoFormat feature喜欢自动将连字符转换为破折号 - 这里可能就是这种情况。
英语语言办公室将连字符转换为具有代码点值的 unicode 字符
0x2013
,但它可能因区域设置和安装的语言包而异,因此来自
0x2010
的字符集至
0x2015
+
-