Перейти к содержанию

denissay

Пользователь
  • Зарегистрирован

  • Посещение

Активность репутации

  1. Нравиться
    denissay отреагировална пост AndrewPro в Регулярка и Регулярные выражения   
    Моя небольшая заметка по регулярным выражениям, может будет кому то полезной и более понятной.
    Это конечно не все по регулярным выражениям, но как за основу, надеюсь сойдет...

    Регулярка
    [\w] - только буквы, числа и нижнее подчеркивание _
    [\W]- все кроме букв, чисел и нижнего подчеркивания _
    [\d] - только цифры
    [\D] - все кроме цифр
    [\n] - перенос строки
    [\s] - пробел и разделитель
    [\S] - найти все что не является символом разделителя
    [\t] - найти символы табуляции или табуляцию
    Подмаска регулярок:
    /a/ ищем символ а
    '/a(s|\s)/' - будет искать символ "a и пробел" и "a и s"
    \s - символ пробела
    () - после которого идет, все что находится в () - является подмаской
    | - знак ИЛИ
    \ - экранирование
    Если без подмаски - () , тогда будет искать "as" и\либо символ "пробела"
    '/a./' - Найти вхождение "a" после которого идет любой другой символ - один символ, после "a" (за это отвечает точка ".")
    . - один символ после
    . - любой символ
    '/\s{2, }\w/' - Ограничивать длину последовательности (мы хотим выбрать, только те элементы, в которых у нас идет БОЛЕЕ ОДНОГО пробела и \w - любой другой символ и любой символ, цифра и нижнее подчёркивание _) "2," - означает, два и более раз. так же можно сделать от 2 до 4 с помощью - {2,4}
    [] - символьный класс
    [\S] - любой символ, кроме пробела
    '/[\S]\s{2, }\w/' - До пробелов не должно быть пробела, модификация '/\s{2, }\w/'
    Система отрицаний:
    ^ - означает как НЕ
    '/[^,\s]/' - перед которыми НЕ стоят Запятая и символы Пробела
    '/^/' - искать что то с начала строки ( если указана ^ не в символьном классе [] )
    '/^[A-Z]/' - искать с начала строки заглавные буквы от A до Z
    $ - с конца строки ( пример: '/[A-Z]$/')
    от 2 до 4 раз - {2,4} - можно написать более просто - 1 и более раз, равен знаку + 
    *  - означает 0 и Более раз...
    + - означает 1 и Более раз... 
    Ноль или более раз - 
    '/[\d]{3}/' - цифры, которые будут повторятся 3 раза
    \d+ - любая цифра 1 или Более раз

    Жадность Квантификатора:
    Квантификатор - это и есть тот алгоритм, который разбирает строку, по данному шаблону и ищет соответствие этому шаблону. По умолчанию, Квантификатор  - жадный (он пытается захватить максимум символов, удовлетворяющему шаблону)!
    '/.+/' - любые символы, 1 или Более раз
    '/.+\s/' - любой символ, 1 или Более раз, до любого символа "Пробела"
    '/.+\s+/' - любой символ, 1 или Более раз, до любого символа "Пробела" 1 или более раз
    ? - изменить жадность Квантификатора ( меняется указанием знака "Вопроса" ? ), Пытается захватить минимум символов заданному шаблону.
    '/.+?\s+/' - получим массив соответствий! 
    К примеру: maSFha  is, 1234567bc - проверяем данную строку
    И получим в виде : 
    maSFha = 0 элемент
    is = 1 второй элемент
    1234567bc = 2 третий элемент
    '/ /' - ограничитель регулярных шаблонов

    Флаги - флаги ставятся после или перед ограничителем:
    Регулярных шаблонов '/ /'
    '/.+\s+/U'
    U - Флаг, который меняет глобально Жадность квантификатора "?"
    u - флаг, обозначает что мы осуществляем Мульти байтовый поиск в кодировке utf-8
    '/[а-яА-Я]+/u' - вот пример с флагом u - где мы ищем в Мульти байтовой кодировке.
    i - флаг i помогает работать и искать как Заглавные, так и строчные буквы (символы)
    '/[а-я]+/ui' - вот и собственно пример (можно не указывать еще заглавные типа А-Я)!
    Флаги с Многострочным поиском:
    m - Флаг, многострочного поиска
    '/^.+&/m' - любые символы от начала до конца строки, где от начала - это ^ и до конца строки - это & , где м - это в многострочном поиске (где несколько строк и более)

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.Политика конфиденциальности