1

У меня есть несколько случаев [слово] - [слово] в тексте, например, личный интерес вместо личного интереса, который является правильной формой. Я пытаюсь удалить постороннее пространство после инсульта, используя подстановочные знаки MS Word. В поле «Найти и заменить» я ввожу:

Найти: *- *
Заменить на: \1- \2

Тем не менее, это не работает. Какая правильная форма для этого?

2 ответа2

1

VBA:

Запустите WrapReplace в документе Word.

Sub WrapReplace()
    Call RegExpReplace("(\w+)\-\s(\w+)", "$1-$2")
End Sub

Private Sub RegExpReplace(pattern As String, Backreference As String)
    Dim strReplacement As String
    Set oRegExp = CreateObject("VBScript.RegExp")

    With oRegExp
        .Global = True
        .IgnoreCase = False
        .pattern = pattern
    End With

    Set matches = oRegExp.Execute(ActiveDocument.Content)

    For Each match In matches
        Set matchRange = ActiveDocument.Content

        strReplacement = oRegExp.Replace(match.Value, Backreference)

        With matchRange.Find
            .Text = match.Value
            .Replacement.Text = strReplacement

            .Wrap = wdFindAsk
            .Execute Replace:=wdReplaceOne
        End With
    Next

End Sub
1

Вы не указали Word, что такое части \1 и \2. Добавьте круглые скобки вокруг дефиса звездочки и звездочки, но оставьте пространство между ними. В вашем Replace with вам не нужен дефис, поскольку он теперь записывается как часть \1.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .