Поиск совпадения внутри скобок с использование регулярных выражений - VBA

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Есть текстовая строка: "Текст (Первый район, Второй район) продолжается текст без скобок. Новое предложение (Первый район, Второй район)". Необходимо с использованием регулярных выражений из библиотеки Microsoft VBScript Regular Expressions 5.5 исправить точку после маленькой буквы перед пробелом и большой буквой внутри скобок (если будет ошибка типа (Первый район. Второй район). Составил такой паттерн: (\(.+[а-я])(\.)( [А-Я].+\)) где первое выражение состоит из открывающей скобки, затем идёт какое-то количество любых символов и маленькая буква. Второе выражение - точка. Третье выражение - пробел, большая буква, какое-то количество любых символов и закрывающая скобка. Шаблон замены: $1,$3 Внутри скобок отрабатывает, но если в строке два или более выражений в скобках, находится соответствие между первой в строке открывающей скобкой и последней. В приведенной текстовой строке точка после слова "скобок" заменяется на запятую. Возможно ли ограничить поиск только внутри одной пары скобок?

Решение задачи: «Поиск совпадения внутри скобок с использование регулярных выражений»

textual
Листинг программы
  1. Sub pr7()
  2.     Dim x As Range, s$
  3.     s = "Текст (Первый район. Второй район) продолжается текст без скобок. Новое предложение (Первый район, Второй район)"
  4.     With CreateObject("vbscript.regexp")
  5.         .Global = True
  6.         .IgnoreCase = True
  7.         .Pattern = "(\([а-яё ]+)(\.)(?=[а-яё ]+\))"
  8.         If .test(s) Then MsgBox .Replace(s, .Execute(s)(0).submatches(0) & ",")
  9.     End With
  10. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы