![Word:替换两个最近的段落标记之间给定字符串周围的文本](https://linux22.com/image/1615009/Word%EF%BC%9A%E6%9B%BF%E6%8D%A2%E4%B8%A4%E4%B8%AA%E6%9C%80%E8%BF%91%E7%9A%84%E6%AE%B5%E8%90%BD%E6%A0%87%E8%AE%B0%E4%B9%8B%E9%97%B4%E7%BB%99%E5%AE%9A%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%91%A8%E5%9B%B4%E7%9A%84%E6%96%87%E6%9C%AC.png)
使用 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“前一个字符出现零次或多次”。