2075 / Регулярні вирази
Регулярні вирази – це чутливі до регістру маски, що використовуються для пошуку збігу, співпадіння в тексті
[ Приклади ]
"[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" // \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+ "a+b=c" @"ba?" // повторюєтья 0 чи 1 раз "ba b baa baaa" @"\b\w{3}\b|\b\w{5}\b" // 3 чи 5 букв або цифр "ba b 123 baaab"
Спеціальні символи [ ] \ ^ $ .| ? * + ( ) { } – можна екранувати символом \
Можна екранувати деяку послідовність символів, розмістивши її між \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} |
