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

Материал из megapuper
Перейти к: навигация, поиск
Строка 9: Строка 9:
 
  '''g''' - глобальный поиск (обрабатываются все совпадения с шаблоном поиска)
 
  '''g''' - глобальный поиск (обрабатываются все совпадения с шаблоном поиска)
 
  '''i''' - игнорировать регистр
 
  '''i''' - игнорировать регистр
  '''m''' - многострочный поиск. Поясню: по умолчанию текст это одна строка, с модификатором есть отдельные строки, а значит ^- начало строки в тексте, $- конец строки в тексте.
+
  '''m''' - многострочный поиск. Пояснение: по умолчанию текст это одна строка, с модификатором есть отдельные строки, а значит ^- начало строки в тексте, $- конец строки в тексте.
  '''s''' - текст воспринимается как одна строка, спец символ «точка» (.) будет вкючать и перевод строки
+
  '''s''' - текст воспринимается как одна строка, спец символ «точка» (.) будет включать и перевод строки
 
  '''u''' - используется кодировка UTF-8
 
  '''u''' - используется кодировка UTF-8
 
  '''U''' - инвертировать жадность
 
  '''U''' - инвертировать жадность
Строка 22: Строка 22:
 
  '''|'''    - логическое "или", в случае с односимвольными альтернативами используйте []
 
  '''|'''    - логическое "или", в случае с односимвольными альтернативами используйте []
 
  '''\'''    - экранирование спец символа
 
  '''\'''    - экранирование спец символа
  '''.'''    - любой сивол, кроме перевода строки
+
  '''.'''    - любой символ, кроме перевода строки
 
  '''\d'''    - [0-9] десятичная цифра
 
  '''\d'''    - [0-9] десятичная цифра
 
  '''\D'''    - [^\d] любой символ, кроме десятичной цифры
 
  '''\D'''    - [^\d] любой символ, кроме десятичной цифры
Строка 53: Строка 53:
 
  aaa aaa граница слова, утверждение: предыдущий символ словесный, а следующий - нет, либо наоборот
 
  aaa aaa граница слова, утверждение: предыдущий символ словесный, а следующий - нет, либо наоборот
 
  \B \Ba\B aaa aaa отсутствие границы слова
 
  \B \Ba\B aaa aaa отсутствие границы слова
  \G \Ga aaa aaa Предыдущий успешный поиск, поиск остановился на 4-й позиции — там, где не нашлось a
+
  \G \Ga aaa aaa предыдущий успешный поиск, поиск остановился на 4-й позиции — там, где не нашлось a
  
  
 
http://website-lab.ru/article/regexp/shpargalka_po_regulyarnyim_vyirajeniyam/
 
http://website-lab.ru/article/regexp/shpargalka_po_regulyarnyim_vyirajeniyam/

Версия 13:35, 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


http://website-lab.ru/article/regexp/shpargalka_po_regulyarnyim_vyirajeniyam/