Реализация голосовых напоминаний

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

fandaymon
Сообщения: 1576
Зарегистрирован: Сб янв 13, 2018 5:00 pm

Re: Реализация голосовых напоминаний

Сообщение fandaymon »

Ларчик просто открывался - вот в таком виде шаблон правильно работает

Код: Выделить всё

(Напомни|напомни) ((через (\d+|один|одну|дв[ае]|три|четыре|пять|шесть|семь|восемь|девять) (часа|час|часов|минут|минуту|минуты|секунд|секунды|секунду))|в \d+:\d+|(завтра|послезавтра|сегодня|на завтра|на послезавтра) в \d+:\d+) (.+) 
и $request = mb_strtolower($matches[7]);
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: Реализация голосовых напоминаний

Сообщение xor »

И вот, что интересно. У меня шаблоны регистронезависимые, а тут многие закладываются на заглавные/прописные буквы.
(Напомни|напомни)

Я один такой?

Отправлено с моего Redmi 4X через Tapatalk
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm

Re: Реализация голосовых напоминаний

Сообщение Logrus »

-(Напомни|напомни)
у меня если названо с заглавной шаблон, так и распознает

-ага, в сценарии не работал
в третьем посту в сценарий, массив =>
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
Krz
Сообщения: 22
Зарегистрирован: Сб мар 24, 2018 3:51 pm
Откуда: Сибирь

Re: Реализация голосовых напоминаний

Сообщение Krz »

Непонятно как-то. У меня с указанным мною шаблоном и кодом работает исправно, и слова не пропадают
20:06 Алиса: Вы просили напомнить надеть кроссовки на босу ногу и бежать по улице
20:06 Алиса: Вы просили напомнить попить чай с сахаром
20:04 Алиса: Задание напомнить попить чай с сахаром установлено на тридцать первое марта в 20:06
20:04 Admin: Напомни через две минуты попить чай с сахаром
20:03 Алиса: Задание напомнить надеть кроссовки на босу ногу и бежать по улице установлено на тридцать первое марта в 20:06
20:03 Admin: Напомни через три минуты надеть кроссовки на босу ногу и бежать по улице
Изображение
Изображение
fandaymon
Сообщения: 1576
Зарегистрирован: Сб янв 13, 2018 5:00 pm

Re: Реализация голосовых напоминаний

Сообщение fandaymon »

Krz писал(а):Непонятно как-то. У меня с указанным мною шаблоном и кодом работает исправно, и слова не пропадают
20:06 Алиса: Вы просили напомнить надеть кроссовки на босу ногу и бежать по улице
20:06 Алиса: Вы просили напомнить попить чай с сахаром
20:04 Алиса: Задание напомнить попить чай с сахаром установлено на тридцать первое марта в 20:06
20:04 Admin: Напомни через две минуты попить чай с сахаром
20:03 Алиса: Задание напомнить надеть кроссовки на босу ногу и бежать по улице установлено на тридцать первое марта в 20:06
20:03 Admin: Напомни через три минуты надеть кроссовки на босу ногу и бежать по улице
Видимо это зависит от каких-то установок PHP или локали или просто от версии PHP - когда вначале шаблона есть {} то шаблон неоднозначно отрабатывает. Это видно по тому, что именно попадает в matches. Вот если поставить (вариант1|вариант2) то всё отрабатывает вполне однозначно. Только тогда все индексы matches надо на 1 сдвигать
Аватара пользователя
Krz
Сообщения: 22
Зарегистрирован: Сб мар 24, 2018 3:51 pm
Откуда: Сибирь

Re: Реализация голосовых напоминаний

Сообщение Krz »

fandaymon писал(а):когда вначале шаблона есть {} то шаблон неоднозначно отрабатывает
Там стоят квадратные скобки, а не фигурные
Изображение
Изображение
fandaymon
Сообщения: 1576
Зарегистрирован: Сб янв 13, 2018 5:00 pm

Re: Реализация голосовых напоминаний

Сообщение fandaymon »

Krz писал(а):
fandaymon писал(а):когда вначале шаблона есть {} то шаблон неоднозначно отрабатывает
Там стоят квадратные скобки, а не фигурные
Да - квадратные и имелись в виду
Stasev
Сообщения: 16
Зарегистрирован: Пн мар 19, 2018 12:55 am

Re: Реализация голосовых напоминаний

Сообщение Stasev »

Перепробовал кучу вариантов - чет у меня так и не получается чтоб не пропадало последнее слово. Приходится говорить ей в конце "Спасибо" :(
fandaymon
Сообщения: 1576
Зарегистрирован: Сб янв 13, 2018 5:00 pm

Re: Реализация голосовых напоминаний

Сообщение fandaymon »

Stasev писал(а): Вт апр 03, 2018 9:19 pm Перепробовал кучу вариантов - чет у меня так и не получается чтоб не пропадало последнее слово. Приходится говорить ей в конце "Спасибо" :(
Вот такой - должен работать

напомни ((через (\d+|один|одну|дв[ае]|три|четыре|пять|шесть|семь|восемь|девять) (часа|час|часов|минут|минуту|минуты|секунд|секунды|секунду))|в \d+:\d+|(завтра|послезавтра|сегодня|на завтра|на послезавтра) в \d+:\d+) (.+)
Stasev
Сообщения: 16
Зарегистрирован: Пн мар 19, 2018 12:55 am

Re: Реализация голосовых напоминаний

Сообщение Stasev »

fandaymon писал(а): Вт апр 03, 2018 9:38 pm
Stasev писал(а): Вт апр 03, 2018 9:19 pm Перепробовал кучу вариантов - чет у меня так и не получается чтоб не пропадало последнее слово. Приходится говорить ей в конце "Спасибо" :(
Вот такой - должен работать

напомни ((через (\d+|один|одну|дв[ае]|три|четыре|пять|шесть|семь|восемь|девять) (часа|час|часов|минут|минуту|минуты|секунд|секунды|секунду))|в \d+:\d+|(завтра|послезавтра|сегодня|на завтра|на послезавтра) в \d+:\d+) (.+)
Блин, вот это вот [Нн] оказывается мешало. Спасибо. Теперь заработало как надо.
Ответить