1

Тема: Найти любое кл-во любых символов кроме конца абзаца (0013)

Здравствуйте

Помогите пожалуйста с регуляркой. Нужно заменить

Том(любое кл-во любых символов кроме конца абзаца)Джерри

на Том и Джерри

2

Re: Найти любое кл-во любых символов кроме конца абзаца (0013)

cognac пишет:

Здравствуйте
Помогите пожалуйста с регуляркой. Нужно заменить
Том(любое кл-во любых символов кроме конца абзаца)Джерри
на Том и Джерри

Попробуйте этот VBA-код (перед исполнением укажите в коде макроса  свое определение содержимого строк s1, s2 и srep).
Смысл макроса: операция поиска/замены выполняется не по всему тексту документа за один проход, а по абзацам текста документа.

Sub FindRepTomJerry()
Dim rfrep As Range
Dim p As Paragraph
Dim s1 As String
Dim s2 As String
Dim srep As String
s1 = "Tom" 
s2 = "Jerry"
srep = "Tom and Jerry"
ActiveDocument.Content.Find.ClearFormatting
Set rfrep = Selection.Range
For Each p In ActiveDocument.Paragraphs
    rfrep.SetRange Start:=p.Range.Start, End:=p.Range.End
    rfrep.Select
    o = 0
    rfrep.Find.Execute FindText:="(*)(" & s1 & ")(*)(" & s2 & ")(*)", _
        ReplaceWith:="\1" & srep & "\5", _
        MatchWildcards:=True, Replace:=wdReplaceAll
Next
End Sub

3

Re: Найти любое кл-во любых символов кроме конца абзаца (0013)

yshindin пишет:

Попробуйте этот VBA-код ...

Отладочные ператоры

...
    rfrep.Select
    o = 0
...

можно (и рекомендуется) убрать.

4

Re: Найти любое кл-во любых символов кроме конца абзаца (0013)

Спасибо за ответ. Но интересовало именно регулярное выражение. Разобрался сам, может кому пригодится:

Том[!^0013]@Джерри

[!^0013] - не конец абзаца
@ - любое кол-во