Merge pull request #150 from Seasle/master

Fixes
This commit is contained in:
Zeeshan Ahmad 2019-08-02 20:49:26 +04:00 committed by GitHub
commit 4156c6eba9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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>.