Как выполнить регулярное выражение в Excel?

Я пытаюсь использовать следующее выражение, чтобы найти образец текста в моих данных Excel. Цель состоит в том, чтобы затем удалить текст, как только он будет найден.

/.([0–9]+[]?x[]?[0–9]+[]?dpi)./i

Помощь!


person M.C.    schedule 16.03.2012    source источник
comment
Добро пожаловать в Stack Overflow. Рекомендуется показать, что вы пробовали до сих пор — конкретные проблемы, как правило, привлекают наибольшее внимание. Не могли бы вы привести пример?   -  person JimmyPena    schedule 19.03.2012


Ответы (2)


Я создал пользовательскую функцию для запуска поиска регулярных выражений и отображения окончательного совпадения в ячейке.

=udfRegEx([Cell you want to find the expression],[Cell with the regular expression you want to use])

Вам нужно открыть редактор Visual Basic и поместить в модуль следующий код:

Function udfRegEx(CellLocation As Range, RegPattern As String)

Dim RegEx As Object, RegMatchCollection As Object, RegMatch As Object
Dim OutPutStr As String

    Set RegEx = CreateObject("vbscript.regexp")
    With RegEx
        .Global = True
        .Pattern = RegPattern
    End With

        OutPutStr = ""
        Set RegMatchCollection = RegEx.Execute(CellLocation.Value)
        For Each RegMatch In RegMatchCollection
            OutPutStr = OutPutStr & RegMatch
        Next
        udfRegEx = OutPutStr

    Set RegMatchCollection = Nothing
    Set RegEx = Nothing
    Set Myrange = Nothing

End Function

Также не забудьте добавить Справочник по регулярным выражениям Microsoft VBScript 5.5.

person Emeralds    schedule 10.08.2012
comment
Отличная функция, но есть ли причина для вашего определения «я»? Из-за этого функция не работает для меня в Excel 2013, и я нигде не вижу ее значения. Комментирование, похоже, решает проблему. - person user2027202827; 05.09.2013
comment
Я определил его для использования в функции, но похоже, что моя функция была отредактирована. Больше не нужно «я» - person Emeralds; 23.09.2013

Вы не указали его, но я предположил, что он использует макрос VBA. я не думаю, что вы можете делать регулярное выражение прямо на листе, используя формулу.

Следующая ссылка должна помочь вам с регулярным выражением и VBA:

http://www.regular-expressions.info/vb.html

Просто не забудьте добавить правильную ссылку «Регулярные выражения Microsoft VBScript 5.5».

Надеюсь, это поможет

person Regis    schedule 16.03.2012