如何在单词中搜索句子的第一个单词

时间:2012-05-23 19:05:56

标签: regex ms-word replace

我有以下脚本会找到一个句点后跟2个或更多个空格,但我要找的是能够找到句子的第一个单词,如果它是“医学”那么它会改变它。我希望能够利用这个剧本,但我已经可以判断它是否会错过一个段落的第一个单词,而且我不确定如何正确搜索“.Medical”

     With Selection.Find
    .ClearFormatting
    .Highlight = False
    .Replacement.ClearFormatting
    .Replacement.Highlight = True
    .Text = (\.)( {2,9})
    .Replacement.Text = "\1 "
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchWildcards = True
    .Execute Replace:=wdReplaceAll
End With

我最终在link找到了另一篇文章并提出了这个问题:

         Dim i As Integer
Dim doc As Document
Set doc = ActiveDocument

For i = 1 To doc.Sentences.Count
    If doc.Sentences(i).Words(1) = "Medical " Then
        doc.Sentences(i).Words(1) = "Medical (needs removal) "
    End If
    If doc.Sentences(i).Words(1) = "Dental " Then
        doc.Sentences(i).Words(1) = "Dental (needs removal) "
    End If
    If doc.Sentences(i).Words(1) = "Life " Then
        doc.Sentences(i).Words(1) = "Life (needs removal) "
    End If
    If doc.Sentences(i).Words(1) = "Vision " Then
        doc.Sentences(i).Words(1) = "Vision (needs removal) "
    End If
Next

1 个答案:

答案 0 :(得分:1)

以下是该代码块的摘录:

    .Text = (\. )( )+Medical
    .Replacement.Text = \1XX

XX =无论你想改变医疗这个词是什么。

(\. )匹配句子的结尾。

( )+匹配无关的空格。

这应该可以解决您的多个空间问题,并将医疗改为您想要的任何内容。

我没有测试过这个。请谨慎使用。