SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы
НазадМетки: регулярные выражения
| Модификатор | Описание | 
| g | найти все совпадения, а не останавливаться после первого совпадения (global match flag) | 
| i | не различать строчные и заглавные буквы | 
| m | считать строку многострочной | 
| s | однострочная строка | 
| x | расширенный синтаксис ( использование пробелов и комментариев) | 
Квантификатор после символа или группы определяет, сколько раз предшествующее выражение может встречаться.
| Шаблон | Описание | 
| {n,m} | общее выражение, повторений может быть от n до m включительно | 
| {n,} | общее выражение, n и более повторений | 
| {,m} | общее выражение, не более m повторений | 
| {n} | общее выражение, ровно n повторений | 
| ? | Знак вопроса означает 0 или 1 раз, то же самое, что и {0,1}. Например, «colou?r» соответствует и color, и colour | 
| * | Звёздочка означает 0, 1 или любое число раз ({0,}). Например, «go*gle» соответствует gogle, google, gooogle, ggle, и др. | 
| + | Плюс означает хотя бы 1 раз ({1,}). Например, «go+gle» соответствует gogle, google и т. д. (но не ggle) | 
| POSIX | Шаблон | Описание | 
| [:upper:] | [A-Z] | символы верхнего регистра | 
| [:lower:] | [a-z] | символы нижнего регистра | 
| [:alpha:] | [A-Za-z] | символы верхнего и нижнего регистра | 
| [:alnum:] | [A-Za-z0-9] | цифры, символы верхнего и нижнего регистра | 
| [:digit:] | [0-9] | цифры | 
| [:xdigit:] | [0-9A-Fa-f] | шестнадцатеричные цифры | 
| [:punct:] | [.,!?:…] | знаки пунктуации | 
| [:blank:] | [ \t] | пробел и TAB | 
| [:space:] | [ \t\n\r\f\v] | символы пробелов(пропуска) | 
| [:cntrl:] | [\x00-\x1F\x7F] | символы управления | 
| [:graph:] | [:alnum:] ∪ [:punct:] | символы печати | 
| [:print:] | [\x20-\x7E] | символы печати и символы пропуска(видимые символы и пробелы) | 
| Обозначение | Описание | 
| () | Простая группа с захватом | 
| (?:) | Группа без захвата. То же самое, но заключённое в скобках выражение не добавляется к списку захваченных фрагментов. Например, если требуется найти или «здравствуйте», или «здраститя», но не важно, какое именно приветствие найдено, можно воспользоваться выражением  | 
| (?=) | Группа с положительной опережающей проверкой (positive lookahead assertion). Продолжает поиск только если справа от текущей позиции в тексте находится заключённое в скобки выражение. При этом само выражение не захватывается. Например,  | 
| (?!) | Группа с отрицательной опережающей проверкой (negative lookahead assertion). Продолжает поиск только если справа от текущей позиции в тексте не находится заключённое в скобки выражение. При этом само выражение не захватывается. Например,  | 
| (?<=) | Группа с положительной ретроспективной проверкой (positive lookbehind assertion). Продолжает поиск только если слева от текущей позиции в тексте находится заключённое в скобки выражение. При этом само выражение не захватывается. Например,  | 
| (?<!) | Группа с отрицательной ретроспективной проверкой (negative lookbehind assertion). Продолжает поиск только если слева от текущей позиции в тексте не находится заключённое в скобки выражение. При этом само выражение не захватывается. Например,  |