1 (изменено: Ink, 2015-12-17 18:40:03)

Тема: Функция RegexMatch на несколько строк

Здравствуйте.
Существует игра, в которой один персонаж может показать другому "паспорт". В чат при этом выводятся некоторые параметры об игроке.

+ открыть спойлер

[15:23:30] - Nick_Name: Test

[15:23:33]  Nick_Name: (( Test ))

[15:23:39]  Объявление: Продам м/ц "FCR-900". Прислал: Andrey_Klark. Тел: 667979

[15:23:39]         Отредактировал сотрудник LV News: Artur_Volkov

[15:23:46] -----------===[ PASSPORT ]===----------

[15:23:46]  Имя: Nick_Name

[15:23:46]  Возраст: 8   Телефон: 58328

[15:23:46]  Фракция: Полиция ЛС   Должность: Кадет

[15:23:46]  Работа: Неизвестно   Разрешение на оружие: Есть

[15:23:46]  Преступлений: 28

[15:23:46]  Законопослушность: 73

[15:23:46] =============================

[15:23:46]  Nick_Name показал(а) свой паспорт

[15:24:10]  Объявление: Куплю а/м "Huntley" В хор. Состоянии. Прислал: Aleksey_Danilow. Тел: 781043

[15:24:10]         Отредактировал сотрудник LS News: Aleks_Vetrov

[15:24:11] - Nick_Name: кхм

[15:24:15] - Nick_Name: test test


Задача:
скрипт должен захватить параметр из последовательности нескольких строк. Видимо, нужно копать в сторону опции s) RegexMatch. Да что-то не копается.


Loop, Read, %chatlog%
{
 if RegExMatch(A_LoopReadLine, "S)\[.*?Имя\: Nick_Name.*?Преступлений\: (.*?)`n", var)
    if var1 > 10
       SendInput, {F6}/taser
}

Сделать же в одну строку

.*?Преступлений\: (.*?)$

не вариант. Должна быть проверка на совпадение ника (первая строка "паспорта").

В чём тут может быть ошибка?

2

Re: Функция RegexMatch на несколько строк

chatlog = 
(
[15:23:30] - Nick_Name: Test

[15:23:33]  Nick_Name: (( Test ))

[15:23:39]  Объявление: Продам м/ц "FCR-900". Прислал: Andrey_Klark. Тел: 667979

[15:23:39]         Отредактировал сотрудник LV News: Artur_Volkov

[15:23:46] -----------===[ PASSPORT ]===----------

[15:23:46]  Имя: Nick_Name

[15:23:46]  Возраст: 8   Телефон: 58328

[15:23:46]  Фракция: Полиция ЛС   Должность: Кадет

[15:23:46]  Работа: Неизвестно   Разрешение на оружие: Есть

[15:23:46]  Преступлений: 28

[15:23:46]  Законопослушность: 73

[15:23:46] =============================

[15:23:46]  Nick_Name показал(а) свой паспорт

[15:24:10]  Объявление: Куплю а/м "Huntley" В хор. Состоянии. Прислал: Aleksey_Danilow. Тел: 781043

[15:24:10]         Отредактировал сотрудник LS News: Aleks_Vetrov

[15:24:11] - Nick_Name: кхм

[15:24:15] - Nick_Name: test test
)

RegExMatch(chatlog, "m`as)^\[[^\r\n]+?Имя: Nick_Name.+?Преступлений:\s*(\d+)", var)
MsgBox, % var1
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder
+ Ink