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). Продолжает поиск только если слева от текущей позиции в тексте не находится заключённое в скобки выражение. При этом само выражение не захватывается. Например, |