Word:替换两个最近的段落标记之间给定字符串周围的文本

Word:替换两个最近的段落标记之间给定字符串周围的文本

使用 Word 2013 ...

假设我有一个文档,其中段落标记之间有很多相似但不完全相同的文本实例,如下所示:

文本 文本 文本 ¶

某物XYZ某物¶

文本 文本 文本 ¶

stelseXYZstelse ¶

文本 文本 文本¶

第三XYZ第三¶

文本 文本 文本¶

... 等等。

我想用一对段落标记¶¶替换其中包含“XYZ”的行(或者换句话说,删除该行上的所有文本)。

我最初的努力是使用带有通配符的“查找/替换”以及以下内容(假设“XYZ”不必区分大小写)。

查找:^13*xyz*^13

替换为:^p^p

不幸的是,Word 从遇到的第一个 ¶ 开始,并选择到下一个“XYZ”的所有文本(包括中间的段落),然后继续直到“XYZ”之后的下一个 ¶。

我环顾四周,没有找到一种方法来表达“最接近给定字符串的¶”。

有任何想法吗?

谢谢!

答案1

您可以在搜索中排除两个 ^13 之间的非 ^13 字符,如下所示:

^13[!^13]@XYZ[!^13]@^13

@ 表示“前一个字符出现一次或多次”,而 !(感叹号)则排除括号内的字符。问题是“XYZ”、“XYZ”、“XYZ ”均不匹配,因此在使用前请先将“XYZ”替换为“XYZ ”。遗憾的是,没有办法告诉 Word“前一个字符出现零次或多次”。

相关内容