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
<p>/java/</p>
3
<p>/java/</p>
4
<p>java</p>
4
<p>java</p>
5
<p>Здесь слово java совпадает со строкой java - это простое условие. Важно помнить, что регулярные выражения ищут совпадения не в строках, а в подстроках.</p>
5
<p>Здесь слово java совпадает со строкой java - это простое условие. Важно помнить, что регулярные выражения ищут совпадения не в строках, а в подстроках.</p>
6
<p>Представим, что мы ищем в строке, в которой есть и другие символы, кроме искомых. В таком случае проверка может показать, что строки сопоставились, хотя на самом деле мы этого не планировали:</p>
6
<p>Представим, что мы ищем в строке, в которой есть и другие символы, кроме искомых. В таком случае проверка может показать, что строки сопоставились, хотя на самом деле мы этого не планировали:</p>
7
<p>/java/</p>
7
<p>/java/</p>
8
<p>asdfjava asdf</p>
8
<p>asdfjava asdf</p>
9
<p>Для управления поиском символов в строке существуют<strong>специальные символы</strong>, которые мы изучим далее.</p>
9
<p>Для управления поиском символов в строке существуют<strong>специальные символы</strong>, которые мы изучим далее.</p>
10
<h3>Символ для поиска в начале строки</h3>
10
<h3>Символ для поиска в начале строки</h3>
11
<p>Если в строке поиска перед искомыми символами поставить ^, то мы найдем только символы, которые находятся в начале строки:</p>
11
<p>Если в строке поиска перед искомыми символами поставить ^, то мы найдем только символы, которые находятся в начале строки:</p>
12
<p>/^java/</p>
12
<p>/^java/</p>
13
<p>java ruby clojurescript javascript</p>
13
<p>java ruby clojurescript javascript</p>
14
<p>Если мы уберем ^, то найдем два сопоставления, в том числе в последней подстроке:</p>
14
<p>Если мы уберем ^, то найдем два сопоставления, в том числе в последней подстроке:</p>
15
<p>/java/</p>
15
<p>/java/</p>
16
<p>java ruby clojurescript javascript</p>
16
<p>java ruby clojurescript javascript</p>
17
<h3>Символ для поиска в конце строки</h3>
17
<h3>Символ для поиска в конце строки</h3>
18
<p>Это символ - $. Посмотрим пример без $, в котором мы получаем два сопоставления:</p>
18
<p>Это символ - $. Посмотрим пример без $, в котором мы получаем два сопоставления:</p>
19
<p>/script/</p>
19
<p>/script/</p>
20
<p>java ruby clojurescript javascript</p>
20
<p>java ruby clojurescript javascript</p>
21
<p>Теперь добавим $ и получим всего одно совпадение - в конце строки:</p>
21
<p>Теперь добавим $ и получим всего одно совпадение - в конце строки:</p>
22
<p>/script$/</p>
22
<p>/script$/</p>
23
<p>java ruby clojurescript javascript</p>
23
<p>java ruby clojurescript javascript</p>
24
<h3>Поиск других символов относительно границ слова</h3>
24
<h3>Поиск других символов относительно границ слова</h3>
25
<p>Предположим, что нам нужно найти только те символы a, которые находятся в конце слова. Для этого наберем в шаблонной строке a\b:</p>
25
<p>Предположим, что нам нужно найти только те символы a, которые находятся в конце слова. Для этого наберем в шаблонной строке a\b:</p>
26
<p>/a\b/</p>
26
<p>/a\b/</p>
27
<p>java ruby clojurescript javascript</p>
27
<p>java ruby clojurescript javascript</p>
28
<p>Используя тот же символ в верхнем регистре \B, мы можем инвертировать поиск. Так мы найдем все символы a, не находящиеся в конце слова:</p>
28
<p>Используя тот же символ в верхнем регистре \B, мы можем инвертировать поиск. Так мы найдем все символы a, не находящиеся в конце слова:</p>
29
<p>/a\B/</p>
29
<p>/a\B/</p>
30
<p>java ruby clojurescript javascript</p>
30
<p>java ruby clojurescript javascript</p>
31
<p>Если поставить символ \b перед искомым, то мы найдем символы, находящиеся в начале слова:</p>
31
<p>Если поставить символ \b перед искомым, то мы найдем символы, находящиеся в начале слова:</p>
32
<p>/\bj/</p>
32
<p>/\bj/</p>
33
<p>java ruby clojurescript javascript</p>
33
<p>java ruby clojurescript javascript</p>
34
<p>Снова используем инвертирование:</p>
34
<p>Снова используем инвертирование:</p>
35
<p>/\Bj/</p>
35
<p>/\Bj/</p>
36
<p>java ruby clojurescriptj javascript</p>
36
<p>java ruby clojurescriptj javascript</p>
37
<p>Добавим к предыдущему примеру еще один символ j после clojurescriptj. Теперь мы найдем только символ j, который находится ни в начале слова, ни в конце:</p>
37
<p>Добавим к предыдущему примеру еще один символ j после clojurescriptj. Теперь мы найдем только символ j, который находится ни в начале слова, ни в конце:</p>
38
<p>/\Bj\B/</p>
38
<p>/\Bj\B/</p>
39
<p>java ruby clojurescriptjj javascript</p>
39
<p>java ruby clojurescriptjj javascript</p>
40
40