import { Meta } from '@storybook/addon-docs/blocks'

<Meta title='@dxtmisha/ru/functional-basic/Functions/getExp - Создание регулярного выражения из строки с экранированием'/>

# `getExp`

Утилита, создающая объект регулярного выражения `RegExp` из строки-шаблона, предварительно экранируя в ней все специальные символы регулярных выражений (такие как `.` `*` `+` `?` `^` `$` `{` `}` `(` `)` `|` `[` `]` `\`).

Это необходимо, если искомая строка поступает от пользователя или содержит символы, которые могли бы сломать регулярное выражение. В функции также можно задать флаги регулярного выражения и шаблон, в который будет подставлена экранированная строка вместо метки `:value`.

**Параметры:**
- `value: string` — Искомая строка, которую нужно экранировать.
- `flags?: string` — (опционально) Флаги регулярного выражения (например, `'ig'`). По умолчанию `'ig'` (игнорирование регистра и глобальный поиск).
- `pattern?: string` — (опционально) Строка-шаблон регулярного выражения. По умолчанию просто `':value'`.

**Возвращает:**
`RegExp` — Объект регулярного выражения.

```typescript
import { getExp } from '@dxtmisha/functional-basic'

// Обычный поиск
const rx1 = getExp('user.name')
console.log(rx1) // /user\.name/gi  (точка экранирована)

// Поиск с пользовательским флагом и шаблоном (например, "начинается с")
const rx2 = getExp('query[1]', 'i', '^:value.*')
console.log(rx2) // /^query\[1\].*/i
```
