正则表达式,用于查找Word中段落的开头

时间:2016-12-24 06:26:10

标签: regex ms-word word-2016

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

  

     

Lorem ipsum dolor sit amet,consectetur adipiscingelit.¶

     

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

     

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

     

Lorem ipsum dolor坐下来,精神上的精神。 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,有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

  

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

这是可以理解的,因为*与包括CR在内的任何字符都匹配,因此匹配的部分从第一个找到的CR延伸到介于其间的任何段落,一直到以magna aliqua,结尾的那段。

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

[!^13]@ magna aliqua,^13

[!^13]的意思是“除CR以外的任何字符”,@的意思是“此字符一次或多次”。

答案 1 :(得分:0)

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

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

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

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

您无法真正将它们组合成一个单独的Find / Replace,并使用find either-只有一个会同时找到这两个。

相关问题