MyTetra Share
Делитесь знаниями!
Регулярные выражения - краткая памятка
Время создания: 04.05.2009 11:34
Текстовые метки: регулярные выражения, regular expression
Раздел: Компьютер - Программирование - Регулярные выражения
Запись: xintrea/mytetra_syncro/master/base/0000000907/text.html на raw.github.com


Символы и метасимволы


  • . - (точка) любой символ, за исключением символа начала новой строки (перевода на новую строку?)
  • ^ - начало строки
  • $ - конец строки
  • \b - начало или конец слова
  • \s - пробел
  • \S - все что не является пробелом (т. е. не пробел)
  • \f - перевод страницы
  • \n - перевод строки
  • \r - перевод каретки
  • \t - горизонтальная табуляция
  • \v - вертикальная табуляция
  • \d - любая цифра (арабская, 0-9)
  • \D - не цифра
  • \w - символ, встречающийся в английских словах (обычно в языках программирования). Аналог [A-Za-z0-9_]
  • \W - не символ слова. Аналог [^A-Za-z0-9_]



Отслеживание повторений символов


Синтаксис - [символ][признак повторения]


Признаки повторения могут быть такими


  • ? - это 0 или 1 указанных символов
  • * - это 0 или больше указанных символов
  • + - это 1 или больше указанных символов
  • {n} - указанное кличество символов (n-количество символов)
  • {n,} - не менее n совпадений
  • {n,m} - это от n до m указанных символов


Жадные и ленивые кванторы


Метасимволы типа * и + являются жадными, т.е. они ищут самое длинное возможное соответствие, а не наименьшее. Если жадное соответсвие ненужно, тогда надо использовать ленивые кванторы.



Жадный

Ленивый

*

*?

+

+?

{n, }

{n, }?



Как использовать отрицание


Отрицание используется внутри многосимвольных шаблонов. Отрицание относится ко всем символам шаблона.


  • [^0-9] Соответствует любому одному НЕ цифровому символу.
  • [^abc] Соответствует любому символу, который не a,b или c.


Сложные выборки


  • (?:x) - найти соответствие, не являющееся x.
    Особенность: (?:x) не помещает свое содержимое в переменную, в отличие от обычных (). $0 будет заменен на всю подстроку, совпавшую с регуляркой.
  • (?:ab|cd|ef) - найти соответствие, не являющееся ab, cd, ef;
  • x(?=y) - найти x если за ним сразу следует y (и, видимо, поместить в найденную переменную только x)
  • x(?!y) - найти x если за ним сразу не следует y



Флаги


Флаг используются как опции или параметры при вызове функций работы с регулярными выражениями.


  • g - находить все вхождение, подходящие под шаблон (в противном случае будет находиться только первое вхождение)
  • i - игнорировать регистр букв (считать большие и маленькие буквы одинаковыми)
  • m - обрабатывать многострочные строки


Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования