2

我正在使用 Word 2016,我需要删除一些以已知单词开头或结尾的段落。例如,在以下文本中:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.¶

sed do eiusmod tempor incididunt ut labore et dolore magna aliqua,¶

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea.¶

Lorem ipsum dolor sit amet, consectetur adipiscing elit。Ut enim ad minim veniam, ...¶

以给定单词/字符串开头的段落按预期工作(删除第 1 和第 4 段):

查找内容:"Lorem ipsum dolor *^13"| 替换为:""| 通配符:On

以给定单词/字符串结尾的段落不起作用(删除第 2 段)。试过:

  • "^13* magna aliqua,^13"^10 = CR - 删除左边的所有内容,包括前面的段落
  • "^10*magna aliqua,^13"^10 = LF - 没有变化

我还在此站点http://word.mvps.org/.../usingwildcards.htm上尝试了一些有趣的示例,但没有找到解决方案。

没有VBA有没有办法做到这一点?

4

2 回答 2

0

"^13* magna aliqua,^13"^10 = CR - 删除左边的所有内容,包括前面的段落

这是可以理解的,因为*匹配任何字符,包括 CR,所以匹配的部分从第一个找到的 CR 延伸到中间的任何段落,直到以 . 结尾的段落magna aliqua,

为了不匹配其他段落结尾,我们必须使用以下内容*

[!^13]@ magna aliqua,^13

[!^13]意思是“除 CR 之外的任何字符”,意思@是“出现一个或多个 this”。

于 2019-01-18T10:05:35.303 回答
0

根据您的示例,要删除以“Lorem”开头的所有段落,您可以使用通配符查找/替换,其中:

Find = ^13Lorem[!^13]{1,}
Replace = nothing

根据您的示例,要删除以“magna aliqua”结尾的所有段落,您可以使用通配符查找/替换,其中:

Find = [!^13]@magna aliqua,^13
Replace = nothing

你不能真正将这些组合成一个查找/替换,用查找either- 只有一个会找到两者。

于 2019-01-18T21:56:13.923 回答