Редактировать и обернуть результаты поиска в скобку

StackOverflow https://stackoverflow.com/questions/19841251

  •  29-07-2022
  •  | 
  •  

Вопрос

Я хочу найти все события строки «нет». + 1-2 целых числа между 1 и 9. Затем удалить «нет». и оберните целое число/s между парарантезом: "(4)" или "(67)". Например, "№ 34" должен стать "(34)".

У меня, кажется, есть несколько проблем (Word 2010):

  1. Код заменяет только одно целое число. Как мне найти оба или два целых числа?
  2. Как сделать. (Я только что вложил в XXXXX так далеко).
  3. Мой код действительно добавляет парантез, но в начале и в конце активного документа. Как сделать это вместо этого обернуть цифры?

    With Selection.Find  
        .Text = "n[or]. [1-9]"  
        .Replacement.Text = "XXXXX"  
        .Forward = True  
        .Wrap = wdFindContinue  
        .Format = False  
        .MatchCase = False  
        .MatchWholeWord = False  
        .MatchWildcards = True  
        .MatchSoundsLike = False
        .MatchAllWordForms = False  
    End With  
    Selection.InsertBefore ("(")  
    Selection.InsertAfter (")")  
    Selection.Find.Execute Replace:=wdReplaceAll 
    
Это было полезно?

Решение

Попробуйте с следующим решением:

With Selection.Find
    .Text = "(No.)( )([1-9]{1;2})"
    .Replacement.Text = "(\3)"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = True
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top