Учебник по функции REGEXREPLACE в Excel

Версия: Microsoft 365
Последнее обновление:
Совет: Используйте ⬆️ ⬇️ для прокрутки страницы вверх и вниз. Рекомендуем использовать большой экран для лучшего чтения.

1. Введение в функцию REGEXREPLACE

Функция REGEXREPLACE является мощным инструментом в Excel, который позволяет пользователям находить и заменять подстроки в тексте с помощью регулярных выражений. Это особенно полезно для очистки данных или массового форматирования строк.
Введение в функцию REGEXREPLACE

2. Параметры функции REGEXREPLACE

Вот синтаксис использования функции REGEXREPLACE.
=REGEXREPLACE(text, pattern, replacement, [occurrence], [case_sensitivity])
  • text: обязательно Текст или ссылка на ячейку, содержащую текст, в котором вы хотите заменить строки.
  • pattern: обязательно Регулярное выражение ("regex"), которое описывает шаблон текста, который вы хотите заменить.
  • replacement: обязательно Текст, которым вы хотите заменить экземпляры шаблона.
  • occurrence: необязательно Указывает, какой экземпляр шаблона вы хотите заменить. По умолчанию occurrence равно 0, что заменяет все экземпляры. Отрицательное число заменяет этот экземпляр, начиная с конца.
  • case_sensitivity: необязательно Определяет, чувствительна ли совпадение к регистру. По умолчанию совпадение чувствительно к регистру. Введите одно из следующих значений:
  • 0: Чувствительно к регистру
  • 1: Не чувствительно к регистру
  • 3. Пример Сценария: Форматирование Номеров Телефонов

    Например, предположим, что у вас есть список номеров телефонов в различных форматах, и вы хотите стандартизировать их в формате (xxx) xxx-xxxx. Использование функции REGEXREPLACE может значительно упростить этот процесс.
    Пример Сценария: Форматирование Номеров ТелефоновПример Сценария: Форматирование Номеров Телефонов

    4. Начало работы с функцией REGEXREPLACE

    Введите на клавиатуре: =REGEXREPLACE(, затем выберите A5 как текст для обработки.
    Начало работы с функцией REGEXREPLACE

    5. Удалить Нецифровые Символы

    Здесь мы устанавливаем регулярное выражение как: "\D", которое соответствует любому нецифровому символу, а затем устанавливаем замену на пустую строку: "".
    Удалить Нецифровые Символы

    6. Применить Функцию REGEXREPLACE

    Таким образом, мы можем заменить все нецифровые символы в номерах телефонов на ничего.

    Вы можете заметить, что данные выглядят неизменными, поскольку исходный формат уже является числовым. Давайте применим то же самое обработку к другим строкам.
    Применить Функцию REGEXREPLACE

    7. Успешно Отфильтрованы Нецифровые Символы

    Теперь мы успешно отфильтровали нецифровые символы из номеров телефонов.
    Успешно Отфильтрованы Нецифровые Символы

    8. Форматировать Номера Телефонов

    Мы также можем преобразовать номера телефонов в фиксированный формат (xxx) xxx-xxxx.

    Регулярное выражение, используемое здесь, это: "(\d{3})[.-]?\s?(\d{3})[.-]?\s?(\d{4})", а регулярное выражение замены: "($1) $2-$3".
    Форматировать Номера Телефонов

    9. Анализ Совпадения Регулярного Выражения

    Здесь мы используем три группы захвата регулярных выражений, чтобы разделить номер телефона на три части. Каждая часть соответствует цифрам в номере телефона.
    text:
    regularExpr:
    123-456-7890(\d{3})[.-]?\s?(\d{3})[.-]?\s?(\d{4})
    1123(\d{3})
    2-[.-]?\s?
    3456(\d{3})
    4-[.-]?\s?
    57890(\d{4})
    1(\d{3})
    (
    начало группы захвата
    \d Цифра
    соответствует любому цифровому символу (0-9)
    {3} Квантификатор
    соответствует 3 предыдущему токену
    )
    конец группы захвата
    2[.-]?\s?
    [.-] Набор символов
    символ .,   символ -.
    ? Квантификатор
    соответствует 0 или 1 предыдущему токену.
    \s Набор символов
    любой пробельный символ (пробелы, табуляции, переносы строк)
    ? Квантификатор
    соответствует 0 или 1 предыдущему токену.
    3(\d{3})
    (
    начало группы захвата
    \d Цифра
    соответствует любому цифровому символу (0-9)
    {3} Квантификатор
    соответствует 3 предыдущему токену
    )
    конец группы захвата
    4[.-]?\s?
    [.-] Набор символов
    символ .,   символ -.
    ? Квантификатор
    соответствует 0 или 1 предыдущему токену.
    \s Набор символов
    любой пробельный символ (пробелы, табуляции, переносы строк)
    ? Квантификатор
    соответствует 0 или 1 предыдущему токену.
    5(\d{4})
    (
    начало группы захвата
    \d Цифра
    соответствует любому цифровому символу (0-9)
    {4} Квантификатор
    соответствует 4 предыдущему токену
    )
    конец группы захвата

    10. Разбор замены регулярных выражений

    Затем мы объединяем три части, соответствующие регулярному выражению, в желаемом формате.
    text:
    regularExpr:
    (123) 456-6789($1) $2-$3
    1((
    2123$1
    3))
    4
    5456$2
    6--
    76789$3
    1( Символ
    2$1 Содержимое первой группы захвата
    3) Символ
    4 Символ
    символ пробела
    5$2 Содержимое второй группы захвата
    6- Символ
    7$3 Содержимое третьей группы захвата

    11. Успешно отформатированные номера телефонов

    Таким образом, мы успешно отформатировали номера телефонов в желаемый формат. Примените это к другим строкам, чтобы завершить весь процесс очистки данных.
    Успешно отформатированные номера телефонов

    12. Случаи неудачи совпадения регулярных выражений

    Вас может озадачить тот факт, что наше регулярное выражение "(\d{3})[.-]?\s?(\d{3})[.-]?\s?(\d{4})" не совпало с номерами телефонов, которые изначально имели формат (xxx) xxx-xxxx.

    На самом деле причина заключается в том, что функция REGEXREPLACE возвращает оригинальный текст без изменений, если регулярное выражение не совпадает. Поэтому нет необходимости совпадать с номерами телефонов, которые изначально имели формат (xxx) xxx-xxxx.
    Случаи неудачи совпадения регулярных выраженийСлучаи неудачи совпадения регулярных выражений

    13. 🎉 Закончить! 🎉

    Заметка автора: Надеюсь, вы почувствуете усилия, которые я вложил в эти учебные пособия. Я надеюсь создать серию очень простых в понимании уроков Excel.

    Если это полезно, помогите мне поделиться этими учебными пособиями, спасибо!


    Следуйте за мной:
    Введение в функцию REGEXREPLACE