在 Microsoft Word 中的“查找”中匹配字符范围和段落分隔符

在 Microsoft Word 中的“查找”中匹配字符范围和段落分隔符

我有几个 Word 文档,其中的换行符(段落分隔符)纯粹是出于美观原因而添加的(可能是人为添加的,但也可能是由 OCR 系统或类似系统添加的)。我想从文档中删除这些多余的换行符。基本上,“多余的”换行符是指两边都是小写字母的换行符(带有可选的空格)。但不幸的是,如果我想在 Word 中查找段落分隔符(^p),我不能使用字符类来仅查找小写字母([az]),反之亦然。

基本上,我想在文档上使用多行正则表达式,这样我就可以找到类似以下内容:

/[a-z]\s*\n\s*[a-z]/

并将换行符替换为空格。有什么方法可以同时搜索段落标记(Word 中的 ^p)和字符类(或者一般只是小写字母)吗?

例子:

标题¶
这是一些文本。

不匹配,但是

此文本位于一行上并
转到下一行。

将会匹配,并且“¶”将被空格替换。

答案1

从你所说的内容中,我无法判断你是否知道,如果你More >>在 Microsoft Word“查找和替换”对话框中单击,你将获得一个包含“使用通配符”选项的“搜索选项”面板。请注意,它支持神秘的通配符语言,而不是正则表达式符号。要开始使用此选项,请使用[a-z]^13[a-z]。出于某种原因,你不能^p在通配符搜索中使用,但^13它是启用通配符的等价物^p

空格有点棘手。我能想到的最好的办法是,你必须使用以下方法进行四次搜索:

  • [a-z]^13[a-z]
  • [a-z][^t ]{1,99}^13[a-z]
  • [a-z]^13[^t ]{1,99}[a-z], 和
  • [a-z][^t ]{1,99}^13[^t ]{1,99}[a-z]

因为,奇怪的是,^t在通配符模式下有效。  \s并且*并不意味着它们在正则表达式中的含义。  {n,m} 有效,但n必须是正数。请注意,您不能只用空格替换匹配项,因为匹配项中包含最后一个字母和第一个字母,并且会遭到破坏。

-为了获得额外的分数:您可能希望在换行符之前查找(连字符) 作为最后一个打印字符;但一定要解决以下两种 (不同) 的情况:


…两边                                                          都是小写字母¶ (可选空格)。不幸
的是,¶……

答案2

^13是 的启用通配符的等效项^p

这几乎是正确的,但请注意^13和之间有细微的差别^p。用 替换的段落分隔符^13似乎会丢失 Word 中常规样式段落分隔符所具有的双倍空间。

first paragraph¶

second paragraph¶

third paragraph¶

变成

first paragraph¶
second paragraph¶
third paragraph¶

要解决此问题,请确保^p在查找和替换对话框的替换部分中使用段落标记。使用通配符的限制^p仅适用于对话框的查找部分。

相关内容