Домашняя » кодирование » Руководство для начинающих по регулярному выражению (Regex)

    Руководство для начинающих по регулярному выражению (Regex)

    Регулярное выражение - это набор символов, образующих шаблон, который можно искать в строке. Regex может быть использован для Проверка например, для проверки номеров кредитных карт, для поиск т.е. через сложные текстовые совпадения, и для замена сопоставленного текста с другой строкой. Он также имеет отличную поддержку нескольких языков - изучите его один раз, и вы можете использовать его на многих языках программирования.

    Я видел, как мало кто впервые взглянул на регулярное выражение и полностью его проигнорировал. Я не виню их; Синтаксис regex сложен и заставит многих работать так же, как те языки командной строки, только хуже. Но тогда каждая новая вещь пугает и кажется поначалу невозможной для изучения. Итак, заимствуя слова Горация, я скажу это; Начни, будь смелым и рискни быть мудрым.

    О компании Regex

    Regex берет свое начало в нейробиологии и математике и была реализована в программировании только в 1968 году Кеном Томпсоном в текстовом редакторе QED для текстового поиска. Теперь это часть многих языков программирования, таких как Perl, Java, Python, Ruby и JavaScript..

    Давайте посмотрим на некоторые примеры того, как работает регулярное выражение.

    Я буду использовать JavaScript в моих примерах. Теперь, чтобы пройти начальный уровень, вам нужно выучить все символы, классы, квантификаторы, модификаторы и методы используется в регулярных выражениях. Вот ссылка на страницу регулярных выражений Mozilla Developer Network, где вы можете просмотреть таблицу, содержащую все это. Вы также можете обратиться к шпаргалке в конце этого поста с наиболее часто используемыми символами.

    Давайте посмотрим на простой пример с объяснением. Это регулярное выражение.

    Это то, что приведенное выше регулярное выражение будет искать в строке: символ «B», за которым следует хотя бы один из любых символов между (включая) «a» до «z», «A» до «Z» и цифр от 0 до 9.

    Вот образец совпадений в выделенной строке:

    корзины, колба, B12 витамин, BaSO4, N До нашей эры Компания

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

    Теперь давайте посмотрим, как использовать это выражение в JavaScript. тестовое задание метод идет: если найдено совпадение, возвращаем правда, еще ложный.

     var input = "ваша тестовая строка", regex = / B [a-zA-Z \ d] + /; предупреждение if (! regex.test (input)) («Совпадение не найдено»); остальное предупреждение («Совпадение найдено»);

    Давайте попробуем другой метод: матч возвращает найденные совпадения в массиве.

     var input = "ваша тестовая строка", regex = / B [a-zA-Z \ d] + / g, / * Я добавил глобальный модификатор 'g' к регулярному выражению, чтобы получить все совпадения * / ary = input.match (регулярное выражение); предупреждение if (ary === null) («совпадений не найдено»); остальное предупреждение ('совпадения:' + ary.toString ());

    Как насчет строки замещать? Давайте попробуем это с регулярным выражением сейчас.

     var input = "ваша тестовая строка", regex = / B [a-zA-Z \ d] + / g; alert (input.replace (regex, "#"));

    Ниже кодекс для вас, чтобы настроить. Нажмите на вкладку «JavaScript» для просмотра кода JS.

    упражнения

    Для упражнений вы можете гуглить “регулярные выражения” и попробуйте их решить. Вот что ожидать при выполнении этих упражнений в зависимости от уровня сложности.

    основной

    Для меня возможность подтвердить пароль достаточно для начинающих. Таким образом, подтвердите пароль длиной от 8 до 16 символов, алфавитно-цифровой с вашим выбором разрешенных специальных символов.

    промежуточный

    Здесь вы должны потренироваться с большим количеством реальных данных и выучить еще несколько регулярных выражений, таких как смотри вперед, смотри за утверждениями а также соответствующие группы;

    • Проверка PIN-кодов, шестнадцатеричных чисел, дат, идентификатора электронной почты, плавающей запятой.
    • Замените конечный ноль, пробелы, набор подходящих слов
    • Извлечение разных частей URL

    продвинутый

    Вы можете оптимизировать решения вышеупомянутых упражнений - самое оптимальное регулярное выражение для электронной почты содержит тысячи символов - так возьмите это так, как вам удобно, и этого достаточно. Вы также можете попробовать:

    • Разбор HTML или XML (хотя в реальном мире это не рекомендуется, потому что использование регулярных выражений для разбора нерегулярного языка, такого как HTML, никогда не сделает его надежным. Плюс разбор XML - сложная задача, более подходящая для опытных пользователей)
    • Замена тегов
    • Удаление комментариев (кроме условных комментариев IE)

    инструменты

    Инструменты для визуализировать регулярное выражение это одна из самых крутых вещей для меня. Если вы когда-нибудь сталкивались с длинным сложным регулярным выражением, просто скопируйте и вставьте их в один из этих инструментов, и вы сможете четко видеть поток. Кроме того, есть много инструментов, которые вы можете использовать, чтобы поиграть с кодом регулярного выражения. Они также демонстрируют примеры и читы вместе с общими функциями.

    • Debuggex - он рисует диаграмму регулярных выражений в соответствии с вашими данными, и вы можете сразу же сделать быстрый доступ к StackOverflow.
    • RegExr - Вы можете проверить свое регулярное выражение с этим. Он также получил ссылку, чит-лист и примеры, чтобы помочь вам.
    • Refiddle - на данный момент, кроме JavaScript, вы также можете поиграть с Ruby и .NET-версиями regex..

    Regex Cheatsheet

    знак Определение
    [ABC] Любой отдельный символ a, b или c
    [^ А] Любой символ, кроме a, b или c
    [A-Z] Символ между (включая) от А до Я
    [^ А-г] Символ кроме от а до я
    [A-Z] Символ между (включая) от А до Я
    . Любой отдельный персонаж
    \ s Любой символ пробела
    \ S Любой непробельный символ
    \ d Любая цифра от 0 до 9
    \ D Любая не цифра
    \ ш Любой символ слова (буква, цифра и подчеркивание)
    \ W Любой несловесный символ
    (…) Захватить все вложенное
    (А | б) Соответствует либо a, либо b
    ? Персонаж a отсутствует или присутствует один раз
    а * Символ А отсутствует или присутствует больше раз
    + Символ А присутствует один или несколько раз
    а 3 3 случая характера подряд
    а 3 3 или более вхождения персонажа подряд
    а 3,6 От 3 до 6 случаев появления персонажа подряд
    ^ Начало строки
    $ Конец строки
    \ б Граница слова. Если символ является последним или первым символом слова или Если символ находится между словом или несловесным символом
    \ B Граница без слов

    Читайте сейчас: Регулярные выражения: 30 полезных инструментов и ресурсов