Регулярные выражения — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
Строка 69: Строка 69:
 
| {a,b} ||  || количество вхождений от "a" до "b"
 
| {a,b} ||  || количество вхождений от "a" до "b"
 
|-
 
|-
| | ||  || Текст ячейки
+
| ||  || Текст ячейки
 
|-
 
|-
 
| \ ||  || Текст ячейки
 
| \ ||  || Текст ячейки

Версия 10:04, 13 ноября 2020

Квантификаторы

Аналог Пример Описание
? {0,1} a? одно или ноль вхождений "а"
+ {1,} a+ одно или более вхождений "а"
* {0,} a* ноль или более вхождений "а"


Модификаторы
Символ «минус» (-) меред модификатором (за исключением U) создаёт его отрицание.

Описание
g глобальный поиск (обрабатываются все совпадения с шаблоном поиска)
i игнорировать регистр
m многострочный поиск. Пояснение: по умолчанию текст это одна строка, с модификатором есть отдельные строки, а значит ^- начало строки в тексте, $- конец строки в тексте.
s текст воспринимается как одна строка, спец символ «точка» (.) будет включать и перевод строки
u используется кодировка UTF-8
U инвертировать жадность
x игнорировать все неэкранированные пробельные и перечисленные в классе символы


Спецсимволы

()    - 
[]    - 
{a,b} - 
l     - логическое "или", в случае с односимвольными альтернативами используйте []
\     - экранирование спец символа
.     - любой символ, кроме перевода строки
\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,b} количество вхождений от "a" до "b"
Текст ячейки
\ Текст ячейки
. Текст ячейки
\d Текст ячейки
\D Текст ячейки
\f Текст ячейки
\n Текст ячейки
\pL Текст ячейки
\r Текст ячейки
\s Текст ячейки
\S Текст ячейки
\t Текст ячейки
\w Текст ячейки
\W Текст ячейки
\v Текст ячейки


Позиция внутри строки

Пример Соответствие Описание
^ ^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/