2013-10-03 50 views
3

我希望找到并可能突出显示包含一个或多个关键字的.doc或docx文档中的所有段落。查找包含MS词中的单词的段落

我开始与此正则表达式(使用MS Word的查找使用通配符),它可以简单地认为所有段落:

([^13^l]){1}*(^13){1}

这种运作良好,我的文档中,即从一段去段落。然后我试图取代*一个可能的搜索词*sust*像这样:

([^13^l]){1}*sust*(^13){1}

然而,这突出了大量的段落到一个段落,其中包括*sust*结束。我觉得这很奇怪,因为第一次尝试只是简单地解析文档,即使在我第二次尝试返回的部分中也是如此。

我也尝试过 ([^13^l]){1}(*sust*)(^13){1}以及([^13^l]){1} (*sust*) (^13){1},它们都会突出很多段落,而不仅仅是一段。

我在这里做错了什么?

回答

0

你必须一步到位吗?我会这样做:1)找到这个词。 2)选择段落。 3)突出显示文字。 4)根据需要重复。 (使用一个简单的宏。)

+0

当然可以。我只是想知道是否有一个简单的正则表达式可以用来代替宏。 – pandita

2

我正在寻找相同的解决方案,并认为我会分享什么对我很好。输入Word文档的VBA端(Alt + F11),插入一个新的模块,粘贴这个代码,找到引号并输入你想要的任何关键字,点击运行箭头,看它突出显示所有段落包含该关键词。我对它如何帮助我感到非常满意!希望它也能帮助你和其他人!

Sub Highlight_Paragraph() 

'THIS CODE HIGHLIGHTS TO THE END OF THE PARAGRAPH WHERE THE TARGET WORD 
'IS FOUND WITHIN THE DOCUMENT 

    Dim oRng As Range 
    Set oRng = ActiveDocument.Range 
    With oRng.Find 
     Do While .Execute(FindText:="Contractor Shall") 
      oRng.Paragraphs(1).Range.HighlightColorIndex = wdYellow 
      oRng.Collapse 0 
     Loop 
    End With 
lbl_Exit: 
    Set oRng = Nothing 
    Exit Sub 
End Sub 
0

您需要5个 “正则表达式” 搜索以找到所有可能出现在正常 paragraphes。

  1. 这捕获与关键字每一段它:

    [^11-^13]{1}([!^11-^13]@sust[!^11-^13]@[^11-^13]{1}) 
    
  2. ...与关键字是在该段第一句话:

    [^11-^13]{1}(sust[!^11-^13]@[^11-^13]{1}) 
    
  3. ...与关键字是硬道理中的一段话:

    [^11-^13]{1}([!^11-^13]@sust[^11-^13]{1}) 
    
  4. ...与在文档中第一段关键字(它会抓住更多):

    ([!^11-^13]@sust[!^11-^13]@[^11-^13]{1}) 
    
  5. ...与关键字是第一个字的文件(或只是由自己去查,也捕捉更多):

    (sust[!^11-^13]@[^11-^13]{1}) 
    

documentation,案件1-3可能的工作:

[^11-^13]{1}([!^11-^13]{0,}sust[!^11-^13]{0,}[^11-^13]{1}) 

但是(对于Word 2010)它没有。

相关问题