Искать символы Unicode обычно неудобно: приходится отвлекаться от основной работы. Программа SymbSearch упрощает этот процесс, задействуя горячие клавиши.
Unicode — это стандарт кодирования символов, который позволяет использовать знаки почти всех письменных языков. Если вы пользуетесь нестандартными его обозначениями, то неудобной таблице символов Windows и поиску в Google появилась неплохая альтернатива — SymbSearch. Это бесплатная утилита с открытым программным кодом, которая поможет быстро находить символы Unicode при помощи горячих клавиш, не отвлекаясь от рабочего процесса.
Программа пока не имеет инсталлятора. Чтобы установить её, достаточно разархивировать папку в нужном месте на жёстком диске. После этого запустите SymbSearch.exe, и SymbSearch окажется в фоновых процессах. Она занимает 105 МБ на жёстком диске и 64 МБ в оперативной памяти.
SymbSearch ориентирована на использование клавиатуры. Когда вы печатаете текст, нажмите Ctrl + Alt + W для запуска приложения. Найдите нужный символ, выберите его при помощи стрелок на клавиатуре и нажмите Enter. Значение будет скопировано в буфер обмена. Затем SymbSearch самостоятельно закроется, а вы вернётесь в активное окно текста, практически не оторвавшись от написания. Всё, что останется, — вставить символ при помощи сочетания клавиш Ctrl + V.
Изначальный список символов огромен, но не пугайтесь. SymbSearch фильтрует знаки по 11 категориям: греческий алфавит, латинский, математика, стрелки и другие. Чтобы быстро переключаться между категориями, используйте клавишу Alt.
Если вы уже знаете, какой конкретно символ нужен для текста или формулы, можно вбить его в поисковую строку.
Пользоваться мышью в программе неудобно. SymbSearch не понимает кликов. Чтобы скопировать символ, необходимо его выделить и нажать Ctrl + C.
Программа SymbSearch находится в активной разработке, но её уже можно использовать. Версия 0.4.0 пока не включает такой необходимой функции, как загрузка при запуске системы, поэтому придётся добавлять утилиту в автозагрузку вручную или запускать её каждый раз, когда это необходимо.
Разработчики SymbSearch отмечают, что в планах — поддержка Linux и macOS, настройка горячих клавиш, инсталлятор для программы и возможность автозагрузки.
Скачать SymbSearch →
Меню «Обнаружить символы» помогает в 1 клик ответить на вопрос, содержатся в ячейке определённые символы или нет.
Казалось бы, невелика задача, найти в ячейке Excel определённый символ или последовательность. Перечислим основные штатные варианты поиска символов:
- Процедура “Найти и заменить” найдет символы в книге, на листе или в диапазоне
- Функции ПОИСК и НАЙТИ укажут позицию искомых символов внутри ячейки
- Функция ПОДСТАВИТЬ (несколько окольный путь, но тоже можно!) попытается заменить символы на пустоту. Если удастся это сделать – строка станет короче, что легко выявить функцией ДЛСТР
- Процедура Фильтр
- ПОИСКПОЗ (с подстановочными символами) вернет адрес ячейки, содержащей искомый символ
- Всесильная функция ВПР (с подстановочными символами) – вернет при поиске первую содержащую символ(ы) ячейку или то, что напротив
Иногда определённые трудности возникают при поиске символов ? и *, см. статью как найти звёздочки в Excel.
Однако не для всех типов символов пригодны и удобны перечисленные варианты. Когда нужно искать не 1 или 2 символа, а целые множества, использование штатных процедур и функций может быть времязатратным и сложным.
Именно для таких случаев я разработал интуитивно понятные процедуры в моей надстройке.
Я выделил среди всех популярных процедур поиска поиск символов по их типу и по начертанию и сделал для них отдельные меню:
Подробнее о процедурах можно прочитать в соответствующих статьях ниже.
Найти символы по типу
- Как найти в ячейке текстовые символы? Буквы и цифры;
- Как найти в ячейке цифры;
- Как узнать, что ячейка содержит латиницу;
- Как найти в ячейке слова, содержащие и кириллицу, и латиницу;
- Как найти в ячейке заглавные буквы.
Найти символы по начертанию
Иногда пользователям нужно выявить, есть ли в ячейках символы в определенном начертании шрифта – жирном, курсиве и подчеркнутом. Для каждой выделена своя процедура.
Поиск символов с помощью регулярных выражений
Регулярные выражения в Excel отсутствуют как штатная возможность, но немного кодинга позволяют включить их поддержку. Что и было сделано для пользователей надстройки. Зная их, вы сможете найти практически любые символы в тексте ячеек.
Помимо самого их наличия, приятный бонус — функции REGEXREPLACE, REGEXEXTRACT и REGEXMATCH доступны бесплатно как в полной, так и в базовой версии.
Похожие и связанные с поиском символов процедуры
Обычно после того, как удалось найти в ячейках определенные символы или сочетания символов, следуют другие операции с ними. Например, можно извлечь, удалить их или заменить на какие-то другие (например, заменить кириллицу на латиницу). В решении подобных задач помогут соответствующие разделы сайта:
- Удалить лишние символы в Excel;
- Извлечь определённые символы в Excel;
- Изменить символы в Excel.
На чтение 5 мин. Просмотров 974 Опубликовано 03.06.2021
Во время серфинга в Интернете (или даже в автономном режиме) вы, вероятно, встретили много символов. Некоторые из них являются обычными, но для других вам, вероятно, понадобится помощь в идентификации символа.
К счастью, в Интернете много символов идентификатор ресурсов, чтобы помочь. Мы покажем вам, как узнать, что означает символ, с помощью различных методов.
Содержание
- 1. Определение символов с помощью Symbols.com
- 2. Нарисуйте символ, чтобы узнать его значение
- 3. Поиск символов с помощью Google
- 4. Просмотрите список символов
- 5. Изучите символы эмодзи
- 6. Используйте средство поиска символов биржевых тикеров
- Легко узнать, что означает любой символ
1. Определение символов с помощью Symbols.com
Удачно названный Symbols.com – отличное место для начала поиска. Наряду с избранными подборками и категориями на домашней странице вы можете использовать его поисковую систему по символам, чтобы найти то, что вы ищете. Просто введите запрос вверху, и вы увидите соответствующие ему символы.
Это замечательно, если вы хотите найти символ по тексту (например, поиск символа «кошерный»). Но во многих случаях вы увидите символ и задаетесь вопросом, каково его значение. К счастью, на сайте есть и другие способы определения символа.
В нижнем левом углу страницы вы увидите раздел Графический указатель . Это позволяет искать символ по его характеристикам. Он предоставляет несколько простых раскрывающихся списков, позволяющих указать, является ли форма открытой или закрытой, есть ли у нее цвета, изогнутые ли линии или прямые и т. Д.
Введите столько информации, сколько вы знаете, затем нажмите Search , чтобы найти символы, соответствующие вашим критериям. Если это не поможет вам найти то, что вы ищете, вы можете использовать категории символов для просмотра по группам, например Знаки валюты , Предупреждающие символы и другие.
Если это не поможет, вы можете выполнить поиск по алфавиту, используя буквы в верхней части экрана. Если вы не ищете ничего особенного, кнопка Случайно может помочь вам узнать что-то новое.
2. Нарисуйте символ, чтобы узнать его значение
Если вы озадачены тем, что видели в офлайн-режиме, это имеет больше смысла. найти символ по картинке. Вы найдете несколько сайтов, которые предлагают функцию рисования символа и узнаете, что он означает.
Один из них – Shapecatcher.. Просто нарисуйте символ, который хотите найти, с помощью мыши или сенсорного экрана и нажмите кнопку Распознать . Сервис вернет символы, соответствующие вашему рисунку.
Если вы не видите совпадение, нарисуйте его снова и попробуйте еще раз. На сайте используются только бесплатные шрифты Unicode, поэтому на нем могут быть не все возможные символы. Попробуйте Mausr для аналогичной альтернативы рисования символов, если она вам не подходит.
3. Поиск символов с помощью Google
Если вы натолкнулись на незнакомый значок во время просмотра веб-страниц, вы этого не сделаете. придется беспокоиться о поиске его на сайте идентификатора символа. Просто запустите поиск символов с помощью Google, и вы получите ответ в течение нескольких секунд.
В Chrome, как и в большинстве других браузеров, вы можете легко искать в Google любой текст. Просто выделите его на странице, щелкните правой кнопкой мыши и выберите Искать в Google “[термин]” . Это откроет новую вкладку с поиском в Google по запросу. Если в вашем браузере по какой-то причине этого нет, вы можете просто скопировать символ, как любой другой текст, и вставить его в Google.
В любом случае Google должен указать вам правильное направление, чтобы узнать значение этого символа.
4. Просмотрите список символов
Юникод (стандарт кодирования текста) поддерживает ряд общих символов, вот как они могут выглядеть как стандартный текст. Хотя у них нет выделенных клавиш на стандартной клавиатуре, вместо этого вы можете использовать несколько методов для ввода иностранных символов.
Если вы не смогли найти искомый символ с помощью любого из вышеперечисленных методов, вы можете найти его, просмотрев все символы, поддерживаемые Unicode. Взгляните на список Compart “других символов” Unicode-символов, и вы можете найти тот, который вам интересен. Если вы предпочитаете альтернативу, посмотрите таблицу Unicode-символов.
Конечно, не все символы поддерживаются в Юникоде. Дорожные знаки, религиозные символы и повседневные потребительские символы не входят в его состав. Возможно, вам придется покопаться на странице списка символов Википедии для поиска таких значков или просмотреть список символов Ancient-Symbols для менее технических символов.
5. Изучите символы эмодзи
Пока вы могу утверждать, что технически это не символы, смайлики часто сбивают с толку людей. В конце концов, есть сотни смайлов, которые нужно отслеживать, плюс постоянно появляются изменения в дизайне и новые.
Во-первых, мы рекомендуем ознакомиться с нашим руководством по значениям смайликов. Это поможет вам быстрее освоить некоторые из наиболее распространенных.
Если у вас все еще есть вопросы о символах эмодзи, загляните в Emojipedia. Здесь вы можете искать определенный смайлик, просматривать по категориям и читать новости об эмодзи. Страница каждого смайлика сообщает вам не только его официальное значение, но и то, для чего он часто используется.
6. Используйте средство поиска символов биржевых тикеров
Мы завершаем обсуждение определения значений символов упоминанием финансовых символов. Они явно отличаются от символов, упомянутых выше, но они по-прежнему являются символом, который вы можете захотеть найти.
MarketWatch, один из наших любимых финансовых сайтов, на которых можно не отставать от рынка, предлагает удобный инструмент поиска символов. Если вы знаете интересующий вас символ, введите его, чтобы увидеть подробную информацию об этой компании. Если вы не знаете, что это такое, введите название компании, и вы увидите совпадения для него.
Попав на страницу компании, вы можете увидеть все виды данных, такие как тенденции, новости и конкуренты.
Легко узнать, что означает любой символ
Теперь вы знаете, куда обращаться, если встретите незнакомый символ. Выполняете ли вы быстрый поиск в Google или рисуете символ, который видели офлайн, вам больше не нужно гадать, что означают эти значки.
Между тем, у многих платформ и сервисов есть свои символы, о которых вам также следует знать.
Пользователи Excel, несмотря на то, что поиск нужного символа кажется довольно простой задачей, часто не понимают, как сделать это. С некоторыми из них проще, с частью – сложнее. Также иногда появляются проблемы с поиском таких символов, как знак вопроса или звездочка из-за того, что они используются в фильтрах. Сегодня мы опишем способы доставать символы самых разных типов.
Содержание
- Как найти в ячейке текстовые символы (буквы и цифры)
- Как найти в ячейке таблицы цифры
- Как узнать, что ячейка Эксель содержит латиницу
- Как найти слова в ячейке, которые содержат кириллицу и латиницу
- Как найти в ячейке заглавные буквы
- Поиск символов в Excel при помощи регулярных выражений
- Что делать с найденными символами
- Удаление лишних символов в Excel
- Извлечение определенных символов в Excel
- Изменение символов в Excel
Как найти в ячейке текстовые символы (буквы и цифры)
Для начала попробуем выполнить самую простую задачу: определить наличие текстовых символов в ячейки и найти тот, который надо. Для этого нужно воспользоваться дополнением !SEMTools, с помощью которого можно искать символы разных типов. Последовательность действий следующая:
- Выделяем тот диапазон, который является изначальным и копируем его в соседнюю колонку.
- Затем выделяем второй диапазон.
- Открываем вкладку «!SEMTools». Там в самой левой части панели инструментов будет вкладка «Обнаружить».
- После этого открываем меню «Символы».
- Затем появится дополнительное меню, в котором надо найти пункт «Буквы-цифры» и нажать на него.
На этой анимации вы можете точно увидеть, как правильно действовать, чтобы отыскать в ячейке текстовые символы. С помощью этой функции надстройки пользователь может определить, а есть ли в других ячейках непечатаемые символы.
Как найти в ячейке таблицы цифры
Иногда нужно определить ячейки, в которой есть цифры, но они находятся вместе с текстом. Когда таких ячеек становится очень много, может быть довольно нелегко определить их. Перед тем, как реализовывать эту задачу, нужно определиться с некоторыми базовыми терминами. Главное наше понятие – «обнаружить». Это означает – проверить, есть ли определенный тип символа в строке. Если да, возвращается значение «ИСТИНА», если нет «ЛОЖЬ». Если же кроме поиска цифр в ячейке пользователь хочет произвести иные действия, то можно воспользоваться дальнейшими разделами этой инструкции.
Второе понятие, которое нужно разобрать – цифры. Это интегральный термин, который обозначает аж 10 символов, которые соответствуют числам от 0 до 9. Соответственно, чтобы проверить наличие чисел, пользователю нужно 10 раз проверить диапазон. Это можно сделать с помощью функции ЕСЛИ, но такой подход требует очень много времени.
Чтобы решить эту проблему, можно воспользоваться специальной формулой, которая выполнит все проверки за один раз: =СЧЁТ(ПОИСК({1:2:3:4:5:6:7:8:9:0};A1))>0. Эта функция имеет тот же синтаксис, что и та, которая ищет кириллические символы в тексте.
Также можно воспользоваться надстройкой, в которой уже вмонтирован макрос для того, чтобы выполнять эту задачу. В таком случае достаточно просто воспользоваться специальной вкладкой !SEMTools, которую нужно применять на дополнительном столбце, который является полной копией того, который является исходным.
Следовательно, набор шагов, которые нужно предпринимать, полностью соответствует предыдущему пункту. Нужно сначала выделить исходный диапазон, скопировать его, а потом выделить появившуюся колонку и применить к ней макрос согласно последовательности шагов, приведенной в этой анимации.
Предположим, нам нужно найти только определенные цифры из всех приведенных. Как можно это сделать? Для начала давайте покажем, как это делать с помощю !SEMTools. Использовать инструмент просто. Достаточно в скобках записывать все нужные цифры, и потом нажать кнопку ОК для подтверждения. С помощью этого же метода можно найти латиницу или найти большие буквы в строке текста.
Также можно воспользоваться формулой для того, чтобы отыскать в диапазоне ячеек необходимые цифры. Для этого надо применять комбинацию функций СЧЕТ и ПОИСК. С ее помощью можно обнаружить не только отдельные цифры, но и целые числовые последовательности: =СЧЁТ(ПОИСК({01:02:03:911:112};A1))>0.
Иногда надо найти числа, отделенные пробелами. В этом случае они называются словами-числами. Чтобы их найти, необходимо также воспользоваться соответствующими инструментами !SEMTools. На этой анимации наглядно показано, какие действия нужно выполнить, чтобы это сделать.
Как узнать, что ячейка Эксель содержит латиницу
Очень часто пользователи Excel смешивают понятия «Найти» и «Извлечь», хотя между ними довольно большая разница. Под первым выражением подразумевают проверку, есть ли определенный символ в текстовой строке или диапазоне данных. В свою очередь, под понятием «Извлечь» подразумевают вытащить нужный символ из текста и передать его другой функции или записать в ячейку.
Что же нужно делать для того, чтобы обнаружить латиницу? Например, можно воспользоваться специальными шрифтами, которые дадут возможность определить английские символы на глаз. Например, это делает шрифт Dubai Medium, который делает английские символы жирными.
Но что же делать, если много данных? В этом случае определения на глаз нужной последовательности значений для того, чтобы проанализировать данные, недостаточно. В этом случае нужно искать способы автоматизации этого процесса. Есть несколько способов, как можно это сделать.
Использование специальной функции
Основная проблема поиска латинских букв, что их в два с половиной раза больше, чем цифр. Следовательно, нужно задавать программе цикл, состоящий из 26 итераций, что может быть довольно напряжно. Но если использовать формулу массива, состоящую из приведенных выше функций СЧЕТ и ПОИСК, то эта затея уже и не кажется настолько сложной: =СЧЁТ(ПОИСК({«a»:»b»:»c»:»d»:»e»:»f»:»g»:»h»:»i»:»j»:»k»:»l»:»m»:»n»:»o»:»p»:»q»:»r»:»s»:»t»:»u»:»v»:»w»:»x»:»y»:»z»};A1))>0. Эта формула вполне подходит для большинства ситуаций. Например, если нет возможности установить соответствующие макросы, которые бы смогли делать это проще и быстрее.
В описанной выше формуле A1 – это та ячейка, в которой осуществляется проверка. Соответственно, вам нужно поставить ту, которая подходит в вашей ситуации. В результате проверки с помощью этой функции возвращается логическое значение. Если совпадения обнаруживаются, то оператор возвращает ИСТИНА, если их нет – ЛОЖЬ.
Функция ПОИСК не дает возможности учитывать регистр при поиске символов. Чтобы это сделать, надо воспользоваться оператором НАЙТИ, который выполняет те же операции, имеет такие же самые аргументы, только уже учитывает регистр. Еще один способ – сделать описанную выше формулу формулой массива. В таком случае она будет иметь следующий вид:{=СЧЁТ(ПОИСК(СИМВОЛ(СТРОКА(65:90));A1))>0}.
Поскольку это формула массива, ее нужно указывать без скобок. При этом после ввода надо нажать комбинацию клавиш Ctrl + Shift + Enter (вместо простого нажатия клавиши ввода, как в случае с обычной функцией), после чего фигурные скобки появятся сами.
Если же нужно найти кириллицу, последовательность действий аналогичная, только в качестве диапазона поиска нужно задавать всю последовательность кириллических символов. =СЧЁТ(ПОИСК({«а»:»б»:»в»:»г»:»д»:»е»:»ё»:»ж»:»з»:»и»:»й»:»к»:»л»:»м»:»н»:»о»:»п»:»р»:»с»:»т»:»у»:»ф»:»х»:»ц»:»ч»:»ш»:»щ»:»ъ»:»ы»:»ь»:»э»:»ю»:»я»};A1))>0. Также можно юзать функцию СИМВОЛ, чтобы сделать это. {=СЧЁТ(ПОИСК(СИМВОЛ(СТРОКА(192:223));A1))>0}
Эта формула должна записываться так, как формула массива. Следовательно, нужно нажать комбинацию клавиш Ctrl + Shift + Enter вместо простого нажатия клавиши ввода. Но есть некоторые исключения, при которых эта функция не будет работать. Нужно предварительно убедиться в том, что язык по умолчанию для программ не в кодировке Unicode стоит русский. В этом случае проблем возникнуть не должно. Эти формулы имеют некоторые отличия между собой. Вместо 33 букв последняя формула применяет только 32. То есть, она не учитывает букву ё, как кириллическую.
В этом случае, аналогично, как и в предыдущем, для поиска нужных символов с учетом регистра, необходимо использовать функцию НАЙТИ. Поэтому можно искать, к примеру, половину алфавита, записанную маленькими буквами и половину, записанную большими. Аргументы те же самые.
Как найти слова в ячейке, которые содержат кириллицу и латиницу
Мы можем логически сделать вывод, что для поиска тех слов, которые содержат и кириллицу, и латиницу, нужно использовать в качестве того, что мы ищем, все символы русского и английского алфавитов.
Как найти в ячейке заглавные буквы
Чтобы найти заглавные буквы, необходимо воспользоваться функцией НАЙТИ, а в качестве аргументов указать заглавные кириллические буквы (или элементы латинского алфавита, если нужно найти их) или же их коды.
При поиске кириллических букв через коды нужно помнить о том, что предварительно таблица ASCII должна быть настроена на русский язык. Простыми словами, чтобы стояла русская локализация.
Если же нужно найти какие-угодно заглавные буквы, независимо от алфавита, в котором их надо искать, нужно использовать функции СТРОЧН и СОВПАД. Последовательность действий следующая:
- Делаем нижний регистр значений в отдельной ячейке.
- Сравниваем результаты с первоначальными.
- После этого используем следующую формулу: =НЕ(СОВПАД(СТРОЧН(A1);A1))
Если эти ячейки не совпадают, это говорит о том, что какой-то из символов в изначальной ячейке был в верхнем регистре.
Поиск символов в Excel при помощи регулярных выражений
Можно также воспользоваться регулярными выражениями для того, чтобы найти символы. Лучше всего это делать с помощью инструмента !SEMTools, поскольку он автоматизирует множество процессов их использования. Спектр использования регулярных выражений в Excel достаточно широк. Мы же остановимся прежде всего на функциях ПОИСК, ЗАМЕНИТЬ, ИЗВЛЕЧЬ.
Приятная новость: эти функции можно использовать как в Гугл таблицах, так и в Excel с этой настройкой.
Первая регулярная функция – REGEXMATCH, которая умеет проверять, похож ли этот паттерн на тот, который был в другой ячейке. Синтаксис: =REGEXMATCH(«текст»;»RegEx-паттерн для поиска»). Эта функция возвращает одно из двух значений: истинное или ложное. Что именно – зависит от того, действительно ли наблюдается соответствие или нет. Вторая функция – =REGEXEXTRACT(«текст»;»RegEx-паттерн для поиска») Она позволяет извлечь нужные символы из строки.
При этом данная функция имеет небольшие отличия от Google Таблиц. Заключается оно в том, что последние в случае ненахождения заданного текста возвращают ошибку, в то время как эта надстройка показывает лишь пустое значение.
Ну и наконец, нужно воспользоваться этой формулой для того, чтобы заменить текст: =REGEXREPLACE(«текст»;»RegEx-паттерн для поиска»;»текст, которым заменяем найденное»).
Что делать с найденными символами
Хорошо. Предположим, мы нашли символы. А что с ними можно делать дальше? Здесь есть несколько возможных вариантов, как можно поступить. Например, можно их удалить. Например, если мы среди кириллических значений нашли латиницу. Также можно заменить ее на аналогичный символ, только в кириллице (например, большую английскую М на русскую М) или же извлечь этот символ для использования в другой формуле.
Удаление лишних символов в Excel
Существует множество способов, как убрать ненужные знаки в Excel. Как один из вариантов – использование функции «Найти и заменить», где заменить тот символ, который нужно убрать, на пустую строку “». Можно воспользоваться теми же регулярными выражениями, которые используются для замены найденного символа.
Извлечение определенных символов в Excel
Для этого можно использовать функцию «Найти», но также можно использовать соответствующее регулярное выражение, где первым аргументом является текст, который надо извлечь, а вторым – та ячейка или диапазон, в которой будет осуществляться поиск.
Изменение символов в Excel
Процедура такая же самая, как и удаление, только искомый символ нужно заменять на другой знак (в том числе, и на непечатаемый), а не писать в соответствующем аргументе пустую строку.
Оцените качество статьи. Нам важно ваше мнение:
В этом уроке вы научитесь выполнять простые операции поиска одного или нескольких символов.
Поиск заданного текста
Ben
— регулярное выражение. Поскольку это просто текст, он ничем не напоминает регулярное выражение, но он им таки является! Регулярные выражения могут содержать простой текст (и могут даже состоять только из простого текста). По общему признанию, это полностью вырожденная обработка регулярных выражений, но это самый простой пример для начала.
Так, здесь идет:
Текст
Hello, my name is Ben. Please visit my website at http://www.forta.com/.
Регулярное выражение
Ben
Результат
Hello, my name is Ben. Please visit
my website at http://www.forta.com/.
Используемое здесь регулярное выражение — буквальный текст, и оно находит вхождения Ben
в первоначальный текст.
Давайте рассмотрим другой пример, используя тот же текст для поиска, но другое регулярное выражение:
Текст
Hello, my name is Ben. Please visit my website at http://www.forta.coin/.
Регулярное выражение
my
Результат
Hello, my name is Ben. Please visit my website at http://www.forta.com/.
my
— также статический текст, но заметьте, что были найдены два вхождения my
.
Сколько вхождений?
По умолчанию большинство механизмов обработки регулярных выражений возвращает только первое вхождение. В предыдущем примере обычно было бы найдено только первое вхождение my
, но не второе.
Итак, почему было найдено два вхождения? В большинстве реализаций регулярных выражений предусмотрен механизм получения списка всех вхождений (обычно возвращаемых в массиве или в некотором другом специальном формате). В JavaScript, например, используя дополнительный флажок g
(глобальный), можно получить массив, содержащий все вхождения.
Указание зависимости от регистра
Регулярные выражения чувствительны к регистру, так что Ben
не будет соответствовать ben
. Однако большинство реализаций регулярных выражений позволяет находить вхождения независимо от регистра. В JavaScript, например, можно указать дополнительный флажок i
, чтобы при операциях поиска не учитывался регистр.
Поиск любого символа
Пока с помощью регулярных выражений мы находили статический (т.е. заранее заданный) текст. Теперь мы будем пытаться найти неизвестные символы.
Чтобы идентифицировать то, что разыскивается, в регулярных выражениях используются специальные символы или наборы символов. Символ .
(точка) соответствует любому символу.
В операции поиска файлов в DOS эквивалентом регулярного выражения .
является ?
. В SQL эквивалентом регулярного выражения .
является _
(символ подчеркивания).
Поэтому операция поиска c.t
найдет cat
и cot
(и другие бессмысленные слова).
Вот пример:
Текст
sales1.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls na1.xls na2.xls sa1.xls
Регулярное выражение
sales.
Результат
sales1.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls na1.xls na2.xls sa1.xls
Здесь используется регулярное выражение sales.
для того, чтобы найти все имена файлов, начинающихся с sales
, за которым следует еще один символ. Три из этих девяти файлов соответствуют шаблону.
Часто термины шаблон, образец, модель обозначают регулярное выражение.
Заметьте, что регулярные выражения сопоставляют шаблоны строкам. Эти шаблоны не всегда будут совпадать со всей строкой, а только с теми символами, которые соответствуют шаблону, — даже если они являются только частью строки. В приведенном примере регулярное выражение не соответствовало имени файла; а соответствовало только части имени файла. Это различие важно помнить при передаче на обработку результатов, найденных с помощью регулярного выражения, некоторому другому коду или приложению.
Символ .
соответствует любому символу — символу алфавита, цифре и даже самой .
:
Текст
sales.xls sales1.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls na1.xls na2.xls sa1.xls
Регулярное выражение
sales.
Результат
sales.xls sales1.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls na1.xls na2.xls sa1.xls
Этот пример содержит один дополнительный файл, sales.xls
. Файл был найден с помощью шаблона sales.
, поскольку .
находит любой символ.
В шаблоне можно использовать несколько символов .
либо вместе (один за другим: ..
будет соответствовать любым двум символам друг рядом с другом), либо в различных местах шаблона.
Рассмотрим другой пример, в котором используется тот же самый текст. На сей раз вы должны найти все файлы для Северной Америки (na
) и Южной Америки (sa
) независимо от того, какая цифра следует после этих сокращений:
Текст
sales1.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls na1.xls na2.xls sa1.xls
Регулярное выражение
.a.
Результат
salesl.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls na1.xls na2.xls sa1.xls
Регулярное выражение .а.
действительно находит na1
, na2
и sa1
, но оно также нашло четыре других вхождения, которые не нужны. Почему? Потому что шаблон соответствует любым трем символам, средний из которых а
.
Необходим шаблон, соответствующий .а.
, за которым следует точка. Вот еще одна попытка:
Текст
salesl.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls nal.xls na2.xls sal.xls
Регулярное выражение
.a..
Результат
salesl.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls nal.xls na2.xls sa1.xls
Шаблон .a..
работает нисколько не лучше, чем .а.
; добавленная после а.
точка соответствует любому следующему символу. Как же тогда найти точку, если специальный символ “точка” соответствует любому символу?
Поиск специальных символов
Точка .
имеет специальное значение в регулярных выражениях. Если в шаблоне нужна точка .
, должен быть способ указать в регулярном выражении, что имеется в виду фактический символ .
, а не символ со специальным значением в регулярном выражении. Чтобы сделать это, предварите точку символом (наклонная черта влево). Наклонная черта влево
— метасимвол (причудливый термин, обозначающий символ со специальным значением, в отличие от обычного символа). Поэтому точка
.
соответствует любому символу, а наклонная черта влево с точкой .
соответствует только самому символу точка .
.
Давайте снова попробуем выполнить предыдущий пример, на сей раз предваряя точку .
наклонной чертой .
:
Текст
salesl.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls nal.xls na2.xls sal.xls
Регулярное выражение
.a..xls
Результат
salesl.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls nal.xls na2.xls sa1.xls
С помощью шаблона .а..xls
мы достигли цели. Первый символ .
соответствует n
(в первых двух вхождениях) или s
(в третьем). Второй символ .
соответствует 1
(в первом и третьем вхождениях) или 2
(во втором). Цепочка .
соответствует точке .
, отделяющей имя файла от расширения, ну a xls
соответствует самому себе. (Фактически, соответствие работало бы и без xls
; добавление в конец xls
предотвратило нахождение имени файла вроде sa3.doc
.)
В регулярных выражениях всегда используется для того, чтобы отметить начало блока из одного или нескольких символов, которые имеют специальное значение. В предыдущем примере мы использовали
.
, а в следующих главах вы увидите еще много примеров использования .
О том, как применять специальные символы, вы узнаете из урока 4, “Использование метасимволов”.
Если нужно найти наклонную черту влево (т.е. выполнить поиск
), используйте
\
(две наклонных черты влево).
Как правило, точке соответствует любой символ. Но это не всегда так: в большинстве реализаций регулярных выражений точке .
соответствует любой символ, кроме символа новой строки.
Резюме
Регулярные выражения, называемые также шаблонами, являются строками, составленными из символов. Эти символы могут быть литералами (фактический текст) или символами (специальные символы со специальными значениями), и в этом уроке вы узнали, как найти один с используя либо текст-литерал, либо метасимвол. Точка .
ответствует любому символу. Наклонная черта влево пользуется для защиты символов и в качестве начального символа в последовательности специальных символов.
Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.