вопрос | ответ |
\A | начало строки |
\Z | конец строки или символ перевода конца строки |
\B | отсутствие границы слова |
\h | наличие границы слова |
\S | соответствие любым символам, кроме пробельных |
\s | соответствие пробельным символам |
\D | соответствие любому символу, за исключением десятичных цифр |
\d | соответствие десятичной цифре |
За ограничителями (/text/) могут следовать модификаторы | x Игнорировать пробельные символы |
За ограничителями (/text/) могут следовать модификаторы - i Игнорировать регистр при поиске соответствия | /mail/i - будет соответствовать как строке "MAIL", так и строке "mail" |
Perl регулярные выражения | /text/ = "text" |
int preg_match (string pattern, string subject [, array matches]) | Эта функция ищет в строке subject соответствие регулярному выражению pattern. Если задан необязательный параметр matches, то результаты поиска помещаю |
Класс [[:graph:]] | печатные символы, за исключением пробельные |
Класс [[:cntrl:]] | управляющие символы |
Класс [[:print:]] | печатные символы |
Класс [[:blanc:]] | символы табуляции и пробела |
Класс [[:space:]] | символы пробела |
Класс [[:punct:]] | знаки пунктуации |
Класс [[:lower:]] | строчные буквенные символы |
Класс [[:upper:]] | прописные буквенные символы |
Класс [[:alpha:]] | буквенные символы |
Класс [[:xdigit:]] | шестнадцатеричные цифровые символы |
Класс [[:digit:]] | десятичные цифровые символы |
Класс [[:alnum:]] | буквенно-цифровые символы |
когда нужно сопоставить выражение строке, в которой встречаются спецсимволы $, ^, {. \ | "\$", "\^", "\{", "\\", ... |
Знак доллара $ соответствует концу строки | "xy$" |
символ ^ ставится за пределами выражения в скобках | "^[a-z]" |
Символ ^ соответствует началу строки | "^xy" |
(морская)*волна | Это выражение соответствует строкам "волна", "морская волна", "морская морская волна" и т.д. |
"x(yz)*" | соответствует строке, в которой за x следует ноль и более последовательностей yz |
"x(yz){2,6}" | соответствует строке, в которой за x следует от двух до шести последовательностей |
"xy{2,6}" | соответствует строке, в которой за x следует от двух до шести y; |
"xy{2,}" | соответствует строке, в которой за x следует не менее двух y (может быть и больше) |
"xy{2}" | соответствует строке, в которой за x следует два y |
"a*" | ноль или более а (строки "абв" и "абва" и "укр" соответствуют этому выражению) |
"a?" | ноль или один а (строки "абв" и "укр" соответствуют этому выражению, а строка "абва" - нет) |
"a+" | хотя бы один а (строки "абв" и "абва" соответствуют этому выражению, а строка "укр" - нет) |
квалификаторы | +, ?, * |
Для исключения последовательности символов из поиска перед этой ней ставится символ "^", ТОЛЬКО ВНУТРИ СКОБОК | "[^а-я]" - отвечает любому символу, не содержащемуся в диапазоне а-я. Обратите внимание, что символ ^ находится внутри квадратных скобок, так как толь |
или в регулярном выражении | | "abc|абв" - соответствует любая строка, содержащая подстроки "abc" или "абв" |
точка это любой символ | "x.[0-9]" = "xy1", "xz2", ... |
точка в регулярном выражении соответствует любому символу | .ok = 'pok', 'rok', 'mok', ... |
соответствует строкам содержащие все цифры | [0-9] |
два символа разделенных дефиом, задают соответствие диапазону символов, находящихся между ними | а-Я |
выражение в квадратных скобках [akd] - соответствует любая строка, содержащая символы akd, вместе или по отдельности | [akd] |
создать регулярное выражения для строк содержащих kms | 'kms' |