Базовые элементы паттернов


*

* — любая последовательность символов произвольной длины, возможно пустое поле.


Использование в сценарии
state: catchAll
        q!: *
        a: Я Вас не понял.
state: start
        q!: * 
        a: Начинаем работу!
        go!: /SecondStep

слово

слово — указанное слово: проверяет полное посимвольное соответствие слова и его позицию во фразе.


Использование в сценарии
state:
    q!: привет
    a: Привет! Как дела?

* корень *

*корень* — стемма: проверяет наличие в слове заданного текста.

Звёздочки могут находиться:

  • В начале, обозначает вариативный префикс: в паттерн *ход попадут слова вход, выход, ход.
  • В конце, обозначает вариативный суффикс: в паттерн ход* попадут слова ходить, ходунки, ход.
  • В начале и конце, обозначает вариативные префикс и суффикс: в паттерн *ход* попадут слова выходить, ход.

Использование в сценарии
 state:
    q: * *подроб* *   //будет ловить: поподробнее, подробности, подробнее
    a: Подробнее на сайте example.cn

(слово1|слово2|или целая фраза)

(слово1|слово2|или целая фраза) — альтернативы: проверяет наличие одного из альтернативных вариантов правила.

Варианты разделяются |. Внутри каждого из них могут содержаться любые другие вложенные элементы паттерна.

Варианты можно разделать также /.

Использование в сценарии
state:
    q: (привет | добр* (утро/день/вечер) | здравствуй* )
    a: Привет-привет!

опциональное слово|или другая фраза

[опциональное слово|или другая фраза] — опции: приведенные в квадратных скобках элементы не являются обязательными.

У паттерна увеличивается вес, если правило сработало.

Внутри опций поддерживаются альтернативы.


Использование в сценарии
state: How many players
        q: * {(сколько|как много|насколько много) (игроков|плееров|человек) [могут] [играть]} *
        q: * [игра] для одного * [или] [нескольких] *
        q: * {([игра]|в игре) [есть] (мультиплеер*|многопользовательск* [режим]|для нескольких пользовател*)} *
        a: Это приключение для одного. 

{слово1 слово2 (1|2)}

{слово1 слово2 (1|2)} — перестановки: проверяется соответствие заданных правил в любой последовательности.

Правила, которые могут быть перемешаны, разделяются пробелом.

Каждое правило может быть любым другим элементом паттерна с любой степенью вложенности.

В перестановках используйте не более 5-6 правил.

Использование в сценарии
state: How much gameplay
        q: * {(сколько|(как|насколько) много|много) геймпле*} *
        q: * {[насколько] (большая|велика) [ли] [эта] [игра]} *
        a: Сюжет игры занял 2 тысячи страниц сценария! 

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней