Действие REGEX

Это действие используется, когда необходимо вытащить точечные данные из текста

REGEX <input> <regex> [prefix]

ПараметрЗначениеОписание
input{text}текст, который будет отфильтрован. Текст указывать в фигурных скобках, желательно.
regex{...}фильтр (регулярное выражение).
prefixПрефикс, добавляемый к временным плейсхолдерам. Необходим, чтобы можно было использовать несколько действий REGEX в одном активаторе.

Временные плейсхолдеры, созданные этим действием

ПлейсхолдерОписание
%[prefix]groupNM%
%[prefix]group:N:M%
%[prefix]group_N_M%
Результат выполнения действия REGEX. где N - порядковый номер вхождений в тексте (0...N), M- Порядковый номер элементов группы(0...M).

Примеры

  1. Выведем координаты моба в отдельные переменные, когда игрок кликает по нему правой кнопкой мыши.
MOB_CLICK:
  mcl_regex:
    mob-type: zombie
    actions:
    - MESSAGE=%moblocation%
    - REGEX=input:{%moblocation%} regex:{[^,]+}
    - 'MESSAGE=world: %group00%'
    - 'MESSAGE=x: %group10%'
    - 'MESSAGE=y: %group20%'
    - 'MESSAGE=z: %group30%'
    - 'MESSAGE=alfa: %group40%'
    - 'MESSAGE=beta: %group50%'
  1. Выведем в чат отфильтрованое сообщение: Игрок вводит текст: $$Привет Мир! В чате появляется: Привет Мир!
MESSAGE:
  msg_regex:
    mask: '$$'
    type: START
    source: CHAT_INPUT
    actions:
    - CANCEL_EVENT=true
    - 'REGEX=input:{%message%} regex:{(\$\$)(.*)}'
    - 'BROADCAST=%player_name% : %group02%'
  1. Применение нескольких действий REGEX в одном активаторе: Допустим имеется текст:
    $$Привет мир! *Мои координаты: world,100,90,-124,175.3,25.23
    и нам необходимо из текста получить Привет мир!, а затем координаты world,100,90,-124,175.3,25.23 в отдельных переменных.
MESSAGE:
  msg_multi_regex:
    mask: $$
    type: START
    source: CHAT_INPUT
    actions:
    - CANCEL_EVENT=true
    - REGEX=input:{%message%} regex:{(\$\$)(.*)\s(\*)(.*):\s(.*)}
    - 'BROADCAST=%player_name% : %group02%'
    - REGEX=input:{%group05%} regex:{[^,]+} prefix:my_2_
    - 'MESSAGE=world: %my_2_group00%'
    - 'MESSAGE=x: %my_2_group10%'
    - 'MESSAGE=y: %my_2_group20%'
    - 'MESSAGE=z: %my_2_group30%'
    - 'MESSAGE=alfa: %my_2_group40%'
    - 'MESSAGE=beta: %my_2_group50%'