Головна‎ > ‎

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

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

"[Ss]ir""[Ss].."
"Sir, sir, in my heart.";    

"[a-d]""[abcd]"
"abcdefgABSDIFG";

"[0-9]"
"3 and 55 or 666"

"[0-9].[0-9]"    // будь-який символ
"3.14 and 2x2"

"^.."    // початок рядка
"Hello. \n Goodbe."

"^[^b]"    // рядки що не починаються з літери b
"a b c"

@"..\.$"    // кінець рядка
"Hello. \n Goodbe."

"[0-9][0-9]", @"\d\d"   //цифра
"0 123 45 6 789"

@"\D"    // не цифра
"a123Ab56Bk7K"

@"\d\D\d\D"
"1F4D KLMN 2D5K 1234 2 5 "

@".o\s"    // пробіл, нерозривний пробіл, табуляція
"Go and go ."

@"\S"    // не пробіл
"1 4   6  8"

@"\w\w\w\w"    // літера    
"melon or apple 12345"

@"\W"    // пробіл чи спацсимвол
"2@ or$ 3'"

@"\b\w\w\w\b", "\b\w{3}\b"
"cat or dog"

@"\b\w{3,5}\b"
"cat or dog and good aaaaa cheecken"

@"ts*"    // повторюєтья 0 і більше раз
"t ts kss ksss tssss tststt kt"

@"ts+"   // повторюєтья 1 і більше раз
"t ts kss ksss tssss tststt kt"

@"a\+"
"a+b=c"

@"ba?"   // повторюєтья 0 чи 1 раз
"ba b baa baaa"













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