Подстановочный знак в конце строки в MS Word? - PullRequest
0 голосов
/ 28 сентября 2018

Мой шаблон совпадения состоит из 4 частей:

    <1st part><2nd part><3rd part><4th part>

    Here,
     <1st part> = Fixed string "Fedora"
     <2nd part> = A 2 digit number "[0-9][0-9]"
     <3rd part> = Followed by a ":" symbol.
     <4th part> = one or more strings till the end of the current line. 

NOTE : <4th part> ends with the end of current line and contains only alphabets.

Я дошел до здесь:

Fedora[0-9][0-9]?[a-z]*[A-Z]*^l>

Но последняя часть - поиск концалиния - не дает ожидаемого результата.Обратите внимание, что я пытаюсь получить конец строки, когда Word автоматически прерывает строку.

Куда я иду?

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Нет способа использовать встроенный в Word Find, чтобы найти конец строки, которая была сгенерирована автоматическим макетом Word.Единственный вид «конца строки», который можно найти, - это разрыв строки, вставляемый нажатием Shift + Enter.Ручной разрыв строки соответствует специальному символу Find ^l.

Если вам нужно найти и продолжить до конца строки, вам нужно использовать макрос (VBA).Следующий пример кода делает то, что вам нужно.Обратите внимание, что с кодом в том виде, в котором он стоит , по окончании макроса будет выбрано только последнее вхождение поискового термина.Вам нужно встроить в него искомый конечный результат.

Или просто удалите строки Do While и Loop, и макрос найдет первое слагаемое.

Sub FindThenToEndOfLine()
    Dim r As Range, rDoc As Word.Range
    Dim bFound As Boolean

    bFound = True
    Set r = ActiveDocument.content
    Set rDoc = r.Duplicate

    r.Find.ClearFormatting
    Do While bFound
        With r.Find
            .text = "Fedora[0-9][0-9]:[a-z]*[A-Z]*" 
            .Forward = True
            .wrap = wdFindStop
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = True
            .MatchSoundsLike = False
            .MatchAllWordForms = False
            bFound = .Execute
        End With

        If bFound Then
            r.Select
            Selection.EndKey Unit:=wdLine, Extend:=True
        End If
    Loop
End Sub
0 голосов
/ 28 сентября 2018

Мне кажется, вам нужно:

Find = Fedora [0-9] {2}: * ^ l

или:

Find = Fedora [0-9] {2}: * [^ л ^ 13]

...