Регулярные выражения — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
Строка 54: | Строка 54: | ||
\B \Ba\B aaa aaa отсутствие границы слова | \B \Ba\B aaa aaa отсутствие границы слова | ||
\G \Ga aaa aaa предыдущий успешный поиск, поиск остановился на 4-й позиции — там, где не нашлось a | \G \Ga aaa aaa предыдущий успешный поиск, поиск остановился на 4-й позиции — там, где не нашлось a | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | || Пример || Соответствие || Описание | ||
+ | |- | ||
+ | | ^ || ^a || '''a'''aa aaa || начало строки | ||
+ | |- | ||
+ | | $ || a$ || aaa aa'''a'''|| конец строки | ||
+ | |- | ||
+ | | \A || \Aa || '''a'''aa aaa<br/> aaa aaa|| начало текста | ||
+ | |- | ||
+ | | \z || a\Z || aaa aaa<br/> aaa aa'''a''' || конец текста | ||
+ | |- | ||
+ | | \b || a\b<br/> \ba || aa'''a''' aa'''a'''<br/> '''a'''aa '''a'''aa || граница слова, утверждение: предыдущий символ словесный, а следующий - нет, либо наоборот | ||
+ | |- | ||
+ | | \B || \Ba\B || a'''a'''a a'''a'''a || отсутствие границы слова | ||
+ | |- | ||
+ | | \G || \Ga || '''aaa''' aaa || Предыдущий успешный поиск, поиск остановился на 4-й позиции — там, где не нашлось a | ||
+ | |} | ||
'''Примеры''' | '''Примеры''' | ||
[0-9]{1,3}[\.][0-9]{1,3}[\.][0-9]{1,3}[\.][0-9]{1,3} - ипишка | [0-9]{1,3}[\.][0-9]{1,3}[\.][0-9]{1,3}[\.][0-9]{1,3} - ипишка | ||
− | [0-9]{1,3}[\.]{3}[0-9]{1,3} - ипишка, | + | [0-9]{1,3}[\.]{3}[0-9]{1,3} - ипишка, в более короткой форме |
http://website-lab.ru/article/regexp/shpargalka_po_regulyarnyim_vyirajeniyam/ | http://website-lab.ru/article/regexp/shpargalka_po_regulyarnyim_vyirajeniyam/ |
Версия 17:49, 12 ноября 2020
Квантификаторы
? {0,1} a? одно или ноль вхождений "а" + {1,} a+ одно или более вхождений "а" * {0,} a* ноль или более вхождений "а"
Модификаторы
Символ «минус» (-) меред модификатором (за исключением U) создаёт его отрицание.
g - глобальный поиск (обрабатываются все совпадения с шаблоном поиска) i - игнорировать регистр m - многострочный поиск. Пояснение: по умолчанию текст это одна строка, с модификатором есть отдельные строки, а значит ^- начало строки в тексте, $- конец строки в тексте. s - текст воспринимается как одна строка, спец символ «точка» (.) будет включать и перевод строки u - используется кодировка UTF-8 U - инвертировать жадность x - игнорировать все неэкранированные пробельные и перечисленные в классе символы
Спецсимволы
() - подмаска, вложенное выражение [] - групповой символ {a,b} - количество вхождений от "a" до "b" | - логическое "или", в случае с односимвольными альтернативами используйте [] \ - экранирование спец символа . - любой символ, кроме перевода строки \d - [0-9] десятичная цифра \D - [^\d] любой символ, кроме десятичной цифры \f - конец (разрыв) страницы \n - перевод строки \pL - буква в кодировке UTF-8 при использовании модификатора u \r - возврат каретки \s - [ \t\v\r\n\f] пробельный символ \S - [^\s] любой символ, кроме пробельного \t - табуляция \w - [0-9a-z_] любая цифра, буква или знак подчеркивания \W - [^\w] любой символ, кроме цифры, буквы или знака подчеркивания \v - вертикальная табуляция
Спецсимволы внутри символьного класса
^ - [^da] отрицание, любой символ кроме "d" или "a" - - [a-z] интервал, любой символ от "a" до "z"
Позиция внутри строки
^ ^a aaa aaa начало строки $ a$ aaa aaa конец строки \A \Aa aaa aaa aaa aaa начало текста \z a\z aaa aaa aaa aaa конец текста \b a\b \ba aaa aaa aaa aaa граница слова, утверждение: предыдущий символ словесный, а следующий - нет, либо наоборот \B \Ba\B aaa aaa отсутствие границы слова \G \Ga aaa aaa предыдущий успешный поиск, поиск остановился на 4-й позиции — там, где не нашлось a
Пример | Соответствие | Описание | |
^ | ^a | aaa aaa | начало строки |
$ | a$ | aaa aaa | конец строки |
\A | \Aa | aaa aaa aaa aaa |
начало текста |
\z | a\Z | aaa aaa aaa aaa |
конец текста |
\b | a\b \ba |
aaa aaa aaa aaa |
граница слова, утверждение: предыдущий символ словесный, а следующий - нет, либо наоборот |
\B | \Ba\B | aaa aaa | отсутствие границы слова |
\G | \Ga | aaa aaa | Предыдущий успешный поиск, поиск остановился на 4-й позиции — там, где не нашлось a |
Примеры
[0-9]{1,3}[\.][0-9]{1,3}[\.][0-9]{1,3}[\.][0-9]{1,3} - ипишка [0-9]{1,3}[\.]{3}[0-9]{1,3} - ипишка, в более короткой форме
http://website-lab.ru/article/regexp/shpargalka_po_regulyarnyim_vyirajeniyam/