删除表格单元格末尾的尾随空格

Tim*_*ker 5 regex find-and-replace microsoft-word

我在 Word 中打开了一个 PDF 文件以进行编辑(原始 Word 文档丢失)。在转换过程中,每一行文本和每个表格单元格都有一个额外的空间。当然,除了我和我轻微的强迫症之外,他们并没有真正伤害任何人。我不喜欢尾随空格。

截屏

删除行尾的尾随空格(搜索" ^p"并替换为"^p")很简单,但在查找/替换对话框中似乎没有“表格单元格标记结束”的特殊字符,而Word “regex”引擎似乎也不支持锚点

Google 搜索让我了解了如何在表格单元格末尾添加内容的提示(我计划"§§§"向每个单元格添加类似内容,然后对 进行简单的搜索/替换" §§§"),但在 Word 2016 中,我不能找到样式“表格单元格”,至少在德语版的 Word 中没有。

我可以尝试任何其他想法吗?另外,知道如何删除行/表格单元格末尾的一个或多个空格吗?量词似乎不适用于非正则表达式查找/替换。

Tim*_*ker 2

好的,我一直在研究 Word VBA 对象模型并提出了这个(启用了 Microsoft VBScript 正则表达式 5.5):

\n\n
Sub TrimCellSpaces()\n    Dim myRE As New RegExp\n    Dim itable As Table\n    Dim C As Cell\n    myRE.Pattern = "\\s+(?!.*\\w)"\n    For Each itable In ThisDocument.Tables\n        For Each C In itable.Range.Cells\n            With myRE\n                C.Range.Text = .Replace(C.Range.Text, "")\n            End With\n        Next\n    Next\nEnd Sub\n
Run Code Online (Sandbox Code Playgroud)\n\n

有趣的是,我最初的尝试(使用Trim(C.Range.Text))并没有删除空格,相反,它在每个单元格的末尾添加了一个段落标记。对此感到困惑,我尝试了正则表达式,\\s+$得到了相同的结果。检查本地对象树,我发现包含文本的单元格Note\xc2\xa0实际上包含Note\xc2\xa0\\x0d\\x0d\\x07我已经找到了为什么会出现这种情况)。这就是为什么我不得不使用那个奇怪的正则表达式来查找单元格中的最后一个空格......

\n