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