HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Регулярные выражения - это формальный язык, который используется для поиска символов и манипуляций с подстроками. Это мощный инструмент, который позволяет эффективно работать с текстом.</p>
1 <p>Регулярные выражения - это формальный язык, который используется для поиска символов и манипуляций с подстроками. Это мощный инструмент, который позволяет эффективно работать с текстом.</p>
2 <p>Регулярные выражения - это специальная текстовая строка, которая задает шаблон поиска. В шаблоне поиска используются:</p>
2 <p>Регулярные выражения - это специальная текстовая строка, которая задает шаблон поиска. В шаблоне поиска используются:</p>
3 <ul><li>Символы, которые нужно найти</li>
3 <ul><li>Символы, которые нужно найти</li>
4 <li>Специальные символы</li>
4 <li>Специальные символы</li>
5 </ul><p>Чтобы было нагляднее, в этом курсе мы будем использовать такой формат примеров:</p>
5 </ul><p>Чтобы было нагляднее, в этом курсе мы будем использовать такой формат примеров:</p>
6 <ul><li>Сверху - шаблонные строки с регулярными выражениями</li>
6 <ul><li>Сверху - шаблонные строки с регулярными выражениями</li>
7 <li>Снизу - строки, в которых мы производим поиск</li>
7 <li>Снизу - строки, в которых мы производим поиск</li>
8 </ul><p>Для начала зададим шаблон с символами, которые мы хотим найти в строке:</p>
8 </ul><p>Для начала зададим шаблон с символами, которые мы хотим найти в строке:</p>
9 <p>/java/</p>
9 <p>/java/</p>
10 <p>java \ python ruby1.9 javascript c#</p>
10 <p>java \ python ruby1.9 javascript c#</p>
11 <p>Обратите внимание на символ / - его называют<strong>разделитель</strong>(<em>delimiter</em>). Его указывают в начале и конце регулярного выражения, чтобы отделить регулярное выражение от остального текста.</p>
11 <p>Обратите внимание на символ / - его называют<strong>разделитель</strong>(<em>delimiter</em>). Его указывают в начале и конце регулярного выражения, чтобы отделить регулярное выражение от остального текста.</p>
12 <p>Мы видим, что с текстом java сопоставилось два варианта из строки. Такое совпадение называется<strong>точным</strong>. Мы не использовали специальных символов и нашли в тексте комбинации символов, совпадающие с заданной комбинацией на сто процентов.</p>
12 <p>Мы видим, что с текстом java сопоставилось два варианта из строки. Такое совпадение называется<strong>точным</strong>. Мы не использовали специальных символов и нашли в тексте комбинации символов, совпадающие с заданной комбинацией на сто процентов.</p>
13 <p>Если мы добавим еще один символ, то соответствия уже не будет, потому что такой подстроки в нашей строке нет:</p>
13 <p>Если мы добавим еще один символ, то соответствия уже не будет, потому что такой подстроки в нашей строке нет:</p>
14 <p>/javab/</p>
14 <p>/javab/</p>
15 <p>java \ python ruby1.9 javascript c#</p>
15 <p>java \ python ruby1.9 javascript c#</p>
16 <p>Разберем подробнее разницу между специальными символами и символами, которые мы ищем в тексте. Давайте попробуем найти в тексте любой символ. Для этого мы используем<strong>метасимвол</strong>- точку .:</p>
16 <p>Разберем подробнее разницу между специальными символами и символами, которые мы ищем в тексте. Давайте попробуем найти в тексте любой символ. Для этого мы используем<strong>метасимвол</strong>- точку .:</p>
17 <p>/./</p>
17 <p>/./</p>
18 <p>java \ python ruby1.9 javascript c#</p>
18 <p>java \ python ruby1.9 javascript c#</p>
19 <p>В результате подсветилась вся строка.</p>
19 <p>В результате подсветилась вся строка.</p>
20 <p>Теперь попробуем комбинировать символы в шаблонной строке. Поищем совпадения комбинаций любого символа с символом y. В таком случае мы получим два совпадения:</p>
20 <p>Теперь попробуем комбинировать символы в шаблонной строке. Поищем совпадения комбинаций любого символа с символом y. В таком случае мы получим два совпадения:</p>
21 <p>/.y/</p>
21 <p>/.y/</p>
22 <p>java \ python ruby1.9 javascript c#</p>
22 <p>java \ python ruby1.9 javascript c#</p>
23 <p>При комбинировании специальных и обычных символов нужно учитывать особое поведение спецсимволов.</p>
23 <p>При комбинировании специальных и обычных символов нужно учитывать особое поведение спецсимволов.</p>
24 <p>Обратите внимание на пример ниже, где мы задаем в шаблоне символы 1.9. Важно понимать, что они соответствуют не самой комбинации символов 1.9, а всем подстрокам из трех символов, в которых первый символ - 1, а последний - 9.</p>
24 <p>Обратите внимание на пример ниже, где мы задаем в шаблоне символы 1.9. Важно понимать, что они соответствуют не самой комбинации символов 1.9, а всем подстрокам из трех символов, в которых первый символ - 1, а последний - 9.</p>
25 <p>Таким образом, между этими символами в строке может находиться что угодно:</p>
25 <p>Таким образом, между этими символами в строке может находиться что угодно:</p>
26 <p>/1.9/</p>
26 <p>/1.9/</p>
27 <p>java \ python ruby1.9 javascript c#</p>
27 <p>java \ python ruby1.9 javascript c#</p>
28 <p>java \ python ruby189 javascript c#</p>
28 <p>java \ python ruby189 javascript c#</p>
29 <p>java \ python ruby1k9 javascript c#</p>
29 <p>java \ python ruby1k9 javascript c#</p>
30 <p>Представим, что нам нужно использовать точку как обычный знак препинания, а не как специальный символ в языке регулярных выражений. В таком случае нужно применить<strong>экранирование символов</strong>с помощью одного из так называемых escape-символов.</p>
30 <p>Представим, что нам нужно использовать точку как обычный знак препинания, а не как специальный символ в языке регулярных выражений. В таком случае нужно применить<strong>экранирование символов</strong>с помощью одного из так называемых escape-символов.</p>
31 <p>Для этого поставим обратный слэш \ перед символом, который мы хотим экранировать. Так спецсимвол перестанет иметь специальное значение. Как видим, все работает. Если вместо точки мы поставим другой символ, наша подстрока не будет совпадать с шаблонной:</p>
31 <p>Для этого поставим обратный слэш \ перед символом, который мы хотим экранировать. Так спецсимвол перестанет иметь специальное значение. Как видим, все работает. Если вместо точки мы поставим другой символ, наша подстрока не будет совпадать с шаблонной:</p>
32 <p>/1\.9/</p>
32 <p>/1\.9/</p>
33 <p>java \ python ruby1.9 javascript c#</p>
33 <p>java \ python ruby1.9 javascript c#</p>
34 <p>java \ python ruby1d9 javascript c#</p>
34 <p>java \ python ruby1d9 javascript c#</p>
35 <p>Точно так же можно экранировать и сам обратный слэш, если нам нужно использовать его в качестве обыкновенного символа. В результате мы увидим следующее совпадение:</p>
35 <p>Точно так же можно экранировать и сам обратный слэш, если нам нужно использовать его в качестве обыкновенного символа. В результате мы увидим следующее совпадение:</p>
36 <p>/\\/</p>
36 <p>/\\/</p>
37 <p>java \ python ruby1d9 javascript c#</p>
37 <p>java \ python ruby1d9 javascript c#</p>
38  
38