powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Нужна функция, убирающая ненужные данные из ячейки Excel
4 сообщений из 29, страница 2 из 2
Нужна функция, убирающая ненужные данные из ячейки Excel
    #34113931
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот, сам ошибся... Редко я с регэкспами работаю, забывать уже стал.

^(.*?)\( = группа ноль и больше символов до первого символа ( в строке, не включая (
(.+)\) = группа длинной не менее одного символа вплоть до последнего ) , не включая этот последний cимвол, но включая все ) встретившиеся после первого ( .
То есть, =RegExpReplace(A1; "^(.*?)\((.+)\)"; "$2") на строку AAA(B(CCC)D)E вернет B(CCC)DE
...
Рейтинг: 0 / 0
Нужна функция, убирающая ненужные данные из ячейки Excel
    #34113953
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще, если нужно вернуть содержание первых парных скобок, то лучше макрос написать вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Function GetFirstSubMatch(ByVal rCell As Range, ByVal rPattern As String) As String
    Dim RegExp As Object, Matches As Object
    Set RegExp = CreateObject("vbscript.regexp")
    With RegExp
        .Pattern = rPattern
        .Global = True
        Set Matches = .Execute(rCell)
        On Error GoTo NoMatch
        GetFirstSubMatch = Matches( 0 ).SubMatches( 0 )
        Exit Function
NoMatch:
        GetFirstSubMatch = ""
    End With
End Function
И запускать:
Код: plaintext
=GetFirstSubMatch(A1, "\(([^\(\)]+?)\)")
...
Рейтинг: 0 / 0
Нужна функция, убирающая ненужные данные из ячейки Excel
    #34114517
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlИ запускать:
Код: plaintext
=GetFirstSubMatch(A1, "\(([^\(\)]+?)\)")

Спасибо
сдесь вроде понятно
([^\(\)]+?) - исключаешь любое количество \(\)
...
Рейтинг: 0 / 0
Нужна функция, убирающая ненужные данные из ячейки Excel
    #34114556
Гость123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlА вообще, если нужно вернуть содержание первых парных скобок
Немного другая формулировка - нужно содержимое крайних скобок. ;)
Еще немного пришлось преобразовать. :)
Код: plaintext
=RegExpReplace(A1; "^(.*?)\((.+)\).*"; "$2")
Т.е. на строку AAA(B(CCC)D)E функция вернет B(CCC)D

White Owl - еще раз спасибо за помощь!
...
Рейтинг: 0 / 0
4 сообщений из 29, страница 2 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Нужна функция, убирающая ненужные данные из ячейки Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]