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

Материал из megapuper
Перейти к: навигация, поиск
Строка 32: Строка 32:
 
| x || игнорировать все неэкранированные пробельные и перечисленные в классе символы
 
| 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'''    - вертикальная табуляция
 
  
  
Строка 59: Строка 38:
 
  '''-'''  - [a-z] интервал, любой символ от "a" до "z"
 
  '''-'''  - [a-z] интервал, любой символ от "a" до "z"
  
 +
'''Спецсимволы'''
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Строка 69: Строка 49:
 
| {a,b} ||  || количество вхождений от "a" до "b"
 
| {a,b} ||  || количество вхождений от "a" до "b"
 
|-
 
|-
| ↓ ||  || Текст ячейки
+
| ↓ ||  || логическое "или", в случае с односимвольными альтернативами используйте []
 
|-
 
|-
| \ ||  || Текст ячейки
+
| \ ||  || экранирование спец символа
 
|-
 
|-
| . ||  || Текст ячейки
+
| . ||  || любой символ, кроме перевода строки
 
|-
 
|-
| \d || || Текст ячейки
+
| \d || [0-9] || десятичная цифра
 
|-
 
|-
| \D || || Текст ячейки
+
| \D || [^\d] || любой символ, кроме десятичной цифры
 
|-
 
|-
| \f ||  || Текст ячейки
+
| \f ||  || конец (разрыв) страницы
 
|-
 
|-
| \n ||  || Текст ячейки
+
| \n ||  || перевод строки
 
|-
 
|-
| \pL ||  || Текст ячейки
+
| \pL ||  || буква в кодировке UTF-8 при использовании модификатора u
 
|-
 
|-
| \r ||  || Текст ячейки
+
| \r ||  || возврат каретки
 
|-
 
|-
| \s || || Текст ячейки
+
| \s || [ \t\v\r\n\f] || пробельный символ
 
|-
 
|-
| \S || || Текст ячейки
+
| \S || [^\s] || любой символ, кроме пробельного
 
|-
 
|-
| \t ||  || Текст ячейки
+
| \t ||  || табуляция
 
|-
 
|-
| \w || || Текст ячейки
+
| \w || [0-9a-z_] || любая цифра, буква или знак подчеркивания
 
|-
 
|-
| \W || || Текст ячейки
+
| \W || [^\w] || любой символ, кроме цифры, буквы или знака подчеркивания
 
|-
 
|-
| \v ||  || Текст ячейки
+
| \v ||  || вертикальная табуляция
 
|}
 
|}
  

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

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

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


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

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


Спецсимволы внутри символьного класса

^   - [^da] отрицание, любой символ кроме "d" или "a"
-   - [a-z] интервал, любой символ от "a" до "z"

Спецсимволы

Аналог Описание
() подмаска, вложенное выражение
[] групповой символ
{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 вертикальная табуляция


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

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