Головна‎ > ‎

Регулярні вирази

Регулярні вирази - це шаблони, що використовуються для пошуку збігу,співпадіння в тексті чи строках.





спеціальні символи [ ] \ ^ $ .| ? * + ( ) { }, їх можна екранувати символом \.
Можна екранувати деяку послідовність символів, розмістивши її між \Q і \E.

 a\.? a. або a
 a\\\\b   a\\b
 a\[F\] a[F]
 \Q+-*/\E  +-*/

. - будь-який символ
* значить 0 чи більше випадків (ab*c - після a буде 0, чи 1, чи багато літер b)

Символьні класи 

[абв] - один з трьох зазначених символів
Для включення усіх символів українського алфавіту можна використовувати [Є-ЯҐ], [а-їґ]
^ - символи, що не входять у набір

Метасимволи:

 \d Відповідає цифрі.
 [0-9]
 \D Відповідає нецифровому символу. 
 [^0-9]
 \s Відповідає будь-якому пробільному символу. 
 [ \f\n\r\t\v]
 \S Відповідає будь-якому непробільному символу. 
 [^ \f\n\r\t\v]
 \w Відповідає будь-якому літерному символу, цифровому й знаку підкреслення. 
  [[:word:]]
 \W Відповідає будь-якому символу, крім літерного символу, цифрового або підкреслення. 
 [^[:word:]]


Позиція всередині рядка

 ^ початок рядка    ^h -> hello world
 $ кінець рядка    d$ -> hello world
 \b межа слова    o\b -> hello world,   d\b -> hello world,   \bw -> hello world
 \B не межа слова    \Bl\B -> hello world
 \G попередній
 успішний пошук  
 \Ga -> aaa aaa


Пошук послідовностей

 {n} Рівно n разів colou{3}r -> colouuur
 {m,n} Від m до n включно colou{2,4}r -> colouur, colouuur, colouuuur
 {m,} Не менше m colou{2,}r -> colouur, colouuurм, colouuuur, ...
 {,n} Не більше n colou{,3}r -> color, colour, colouur, colouuur

 * Нуль або більше  {0,}
 + Одне або більше {1,}
 ? Нуль або одне {0,1}