mirror of
https://github.com/ziishaned/learn-regex.git
synced 2025-08-06 03:26:42 -04:00
commit
4156c6eba9
@ -126,7 +126,7 @@
|
|||||||
|
|
||||||
Точка `.` это простейший пример метасимвола. Метасимвол `.`
|
Точка `.` это простейший пример метасимвола. Метасимвол `.`
|
||||||
находит любой отдельный символ. Точка не будет находить символы перехода или перевода строки.
|
находит любой отдельный символ. Точка не будет находить символы перехода или перевода строки.
|
||||||
Например, регулярное выражение '.ar' обозначает: любой символ, за которым следуют буквы ` a` и `r`.
|
Например, регулярное выражение `.ar` обозначает: любой символ, за которым следуют буквы `a` и `r`.
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
".ar" => The <a href="#learn-regex"><strong>car</strong></a> <a href="#learn-regex"><strong>par</strong></a>ked in the <a href="#learn-regex"><strong>gar</strong></a>age.
|
".ar" => The <a href="#learn-regex"><strong>car</strong></a> <a href="#learn-regex"><strong>par</strong></a>ked in the <a href="#learn-regex"><strong>gar</strong></a>age.
|
||||||
@ -139,7 +139,7 @@
|
|||||||
Набор символов также называется классом символов. Квадратные скобки используются
|
Набор символов также называется классом символов. Квадратные скобки используются
|
||||||
для определения набора символов. Дефис используется для указания диапазона символов.
|
для определения набора символов. Дефис используется для указания диапазона символов.
|
||||||
Порядок следования символов, заданный в квадратных скобках, не важен. Например,
|
Порядок следования символов, заданный в квадратных скобках, не важен. Например,
|
||||||
регулярное выражение `[Tt]he` обозначает заглавную 'T' или строчную 't', за которой следуют буквы 'h' и 'e'.
|
регулярное выражение `[Tt]he` обозначает заглавную `T` или строчную `t`, за которой следуют буквы `h` и `e`.
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
"[Tt]he" => <a href="#learn-regex"><strong>The</strong></a> car parked in <a href="#learn-regex"><strong>the</strong></a> garage.
|
"[Tt]he" => <a href="#learn-regex"><strong>The</strong></a> car parked in <a href="#learn-regex"><strong>the</strong></a> garage.
|
||||||
@ -148,7 +148,7 @@
|
|||||||
[Запустить регулярное выражение](https://regex101.com/r/2ITLQ4/1)
|
[Запустить регулярное выражение](https://regex101.com/r/2ITLQ4/1)
|
||||||
|
|
||||||
Точка внутри набора символов, однако, обозначает непосредственно точку, как символ.
|
Точка внутри набора символов, однако, обозначает непосредственно точку, как символ.
|
||||||
Регулярное выражение `ar[.]` обозначает строчную 'a', за которой следует 'r', за которой следует '.' (символ точки).
|
Регулярное выражение `ar[.]` обозначает строчную `a`, за которой следует `r`, за которой следует `.` (символ точки).
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
"ar[.]" => A garage is a good place to park a c<a href="#learn-regex"><strong>ar.</strong></a>
|
"ar[.]" => A garage is a good place to park a c<a href="#learn-regex"><strong>ar.</strong></a>
|
||||||
@ -158,8 +158,8 @@
|
|||||||
|
|
||||||
### 2.2.1 Отрицание набора символов
|
### 2.2.1 Отрицание набора символов
|
||||||
|
|
||||||
Знак вставки '^' обозначает начало строки, однако, когда вы вписываете его после открытия квадратных скобок, он отрицает набор символов.
|
Знак вставки `^` обозначает начало строки, однако, когда вы вписываете его после открытия квадратных скобок, он отрицает набор символов.
|
||||||
Например, регулярное выражение `[^c]ar` обозначает любой символ, кроме 'c', за которым следуют буквы 'a' и 'r'.
|
Например, регулярное выражение `[^c]ar` обозначает любой символ, кроме `c`, за которым следуют буквы `a` и `r`.
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
"[^c]ar" => The car <a href="#learn-regex"><strong>par</strong></a>ked in the <a href="#learn-regex"><strong>gar</strong></a>age.
|
"[^c]ar" => The car <a href="#learn-regex"><strong>par</strong></a>ked in the <a href="#learn-regex"><strong>gar</strong></a>age.
|
||||||
@ -169,7 +169,7 @@
|
|||||||
|
|
||||||
## 2.3 Повторения
|
## 2.3 Повторения
|
||||||
|
|
||||||
Символы `+`, `*` or `?` используются для обозначения того, как сколько раз появляется какой-либо подшаблон.
|
Символы `+`, `*` или `?` используются для обозначения того, как сколько раз появляется какой-либо подшаблон.
|
||||||
Данные метасимволы могут вести себя по-разному, в зависимости от ситуации.
|
Данные метасимволы могут вести себя по-разному, в зависимости от ситуации.
|
||||||
|
|
||||||
### 2.3.1 Звёздочка
|
### 2.3.1 Звёздочка
|
||||||
@ -214,7 +214,7 @@
|
|||||||
|
|
||||||
В регулярном выражении метасимвол `?` делает предыдущий символ необязательным.
|
В регулярном выражении метасимвол `?` делает предыдущий символ необязательным.
|
||||||
Этот символ соответствует нулю или одному экземпляру предыдущего символа.
|
Этот символ соответствует нулю или одному экземпляру предыдущего символа.
|
||||||
Например, регулярное выражение `[T]?he` означает необязательную заглавную букву `T`, за которой следуют символы 'h' и 'e'.
|
Например, регулярное выражение `[T]?he` означает необязательную заглавную букву `T`, за которой следуют символы `h` и `e`.
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
"[T]he" => <a href="#learn-regex"><strong>The</strong></a> car is parked in the garage.
|
"[T]he" => <a href="#learn-regex"><strong>The</strong></a> car is parked in the garage.
|
||||||
@ -264,7 +264,7 @@
|
|||||||
скобочной группы, он будет искать всю группу. Например, регулярное выражение `(ab)*` соответствует
|
скобочной группы, он будет искать всю группу. Например, регулярное выражение `(ab)*` соответствует
|
||||||
нулю или более повторений символа "ab". Мы также можем использовать метасимвол чередования `|`
|
нулю или более повторений символа "ab". Мы также можем использовать метасимвол чередования `|`
|
||||||
внутри скобочной группы. Например, регулярное выражение `(c|g|p)ar` означает поиск одной из строчных букв `c`,
|
внутри скобочной группы. Например, регулярное выражение `(c|g|p)ar` означает поиск одной из строчных букв `c`,
|
||||||
`g` или `p`, за которыми следуют буквы 'a' и 'r'.
|
`g` или `p`, за которыми следуют буквы `a` и `r`.
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
"(c|g|p)ar" => The <a href="#learn-regex"><strong>car</strong></a> is <a href="#learn-regex"><strong>par</strong></a>ked in the <a href="#learn-regex"><strong>gar</strong></a>age.
|
"(c|g|p)ar" => The <a href="#learn-regex"><strong>car</strong></a> is <a href="#learn-regex"><strong>par</strong></a>ked in the <a href="#learn-regex"><strong>gar</strong></a>age.
|
||||||
@ -298,7 +298,7 @@
|
|||||||
Альтернация по своей сути похожа на оператор ИЛИ между логическими выражениями. Может создаться впечатление, что
|
Альтернация по своей сути похожа на оператор ИЛИ между логическими выражениями. Может создаться впечатление, что
|
||||||
чередование это то же самое, что и определение набора символов. Однако, большая разница между ними в том, что
|
чередование это то же самое, что и определение набора символов. Однако, большая разница между ними в том, что
|
||||||
набор символов работает на уровне конкретных символов, в то время как альтернация работает на уровне выражений.
|
набор символов работает на уровне конкретных символов, в то время как альтернация работает на уровне выражений.
|
||||||
Например, регулярное выражение `(T|t)he|car` объединяет два шаблона (заглавная `T` ИЛИ строчная `t`, с продолжением из 'h' и 'e') и шаблон
|
Например, регулярное выражение `(T|t)he|car` объединяет два шаблона (заглавная `T` ИЛИ строчная `t`, с продолжением из `h` и `e`) и шаблон
|
||||||
(строчная `c`, затем строчная `a`, за которой следует строчная `r`). Таким образом, в поиске будет участвовать любой из данных шаблонов,
|
(строчная `c`, затем строчная `a`, за которой следует строчная `r`). Таким образом, в поиске будет участвовать любой из данных шаблонов,
|
||||||
по аналогии с логической операцией ИЛИ в программировании и алгебре выражений.
|
по аналогии с логической операцией ИЛИ в программировании и алгебре выражений.
|
||||||
|
|
||||||
@ -312,7 +312,7 @@
|
|||||||
|
|
||||||
Обратный слэш `\` используется в регулярных выражениях для экранирования следующего символа.
|
Обратный слэш `\` используется в регулярных выражениях для экранирования следующего символа.
|
||||||
Это позволяет формировать шаблоны с поиском зарезервированных символов, таких как `{ } [ ] / \ + * . $ ^ | ?`.
|
Это позволяет формировать шаблоны с поиском зарезервированных символов, таких как `{ } [ ] / \ + * . $ ^ | ?`.
|
||||||
Для использования спецсимвола в шаблоне необходимо указать символ '\' перед ним.
|
Для использования спецсимвола в шаблоне необходимо указать символ `\` перед ним.
|
||||||
|
|
||||||
Как упомянуто выше, символ `.` является зарезервированным и соответствует любому значению, кроме символа новой строки.
|
Как упомянуто выше, символ `.` является зарезервированным и соответствует любому значению, кроме символа новой строки.
|
||||||
Бывают ситуации, когда необходимо найти точку в предложении, для таких случаев применимо экранирование. Рассмотрим выражение
|
Бывают ситуации, когда необходимо найти точку в предложении, для таких случаев применимо экранирование. Рассмотрим выражение
|
||||||
@ -338,7 +338,7 @@
|
|||||||
совпадение будет соответствовать букве `a`. Если же мы используем регулярное выражение `^b` на той же строке,
|
совпадение будет соответствовать букве `a`. Если же мы используем регулярное выражение `^b` на той же строке,
|
||||||
мы не получим совпадения, поскольку во входящей строке `abc` "b" не является первым символом. Рассмотрим другое
|
мы не получим совпадения, поскольку во входящей строке `abc` "b" не является первым символом. Рассмотрим другое
|
||||||
регулярное выражение: `^(T|t)he`, обозначающее заглавную `T` или строчную `t` как первый символ, за которым следуют
|
регулярное выражение: `^(T|t)he`, обозначающее заглавную `T` или строчную `t` как первый символ, за которым следуют
|
||||||
символы букв 'h' и 'e'. Cоответственно:
|
символы букв `h` и `e`. Cоответственно:
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
"(T|t)he" => <a href="#learn-regex"><strong>The</strong></a> car is parked in <a href="#learn-regex"><strong>the</strong></a> garage.
|
"(T|t)he" => <a href="#learn-regex"><strong>The</strong></a> car is parked in <a href="#learn-regex"><strong>the</strong></a> garage.
|
||||||
@ -439,7 +439,7 @@
|
|||||||
|
|
||||||
Положительное ретроспективное условие используется чтобы найти все совпадения, которым предшествует
|
Положительное ретроспективное условие используется чтобы найти все совпадения, которым предшествует
|
||||||
определенный шаблон. Условие определяется как `(?<=...)`. Например, выражение `(?<=(T|t)he\s)(fat|mat)` означает,
|
определенный шаблон. Условие определяется как `(?<=...)`. Например, выражение `(?<=(T|t)he\s)(fat|mat)` означает,
|
||||||
найти все слова `fat` или `mat` из входной строки, которым предшествует слово `The` or `the`.
|
найти все слова `fat` или `mat` из входной строки, которым предшествует слово `The` или `the`.
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
"(?<=(T|t)he\s)(fat|mat)" => The <a href="#learn-regex"><strong>fat</strong></a> cat sat on the <a href="#learn-regex"><strong>mat</strong></a>.
|
"(?<=(T|t)he\s)(fat|mat)" => The <a href="#learn-regex"><strong>fat</strong></a> cat sat on the <a href="#learn-regex"><strong>mat</strong></a>.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user