Использование системы в различных ситуациях, вопросы программирования сценариев.
Модератор: immortal
-
fandaymon
- Сообщения: 1553
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
-
Благодарил (а):
39 раз
-
Поблагодарили:
574 раза
Сообщение
fandaymon » Ср мар 28, 2018 5:23 am
Ларчик просто открывался - вот в таком виде шаблон правильно работает
Код: Выделить всё
(Напомни|напомни) ((через (\d+|один|одну|дв[ае]|три|четыре|пять|шесть|семь|восемь|девять) (часа|час|часов|минут|минуту|минуты|секунд|секунды|секунду))|в \d+:\d+|(завтра|послезавтра|сегодня|на завтра|на послезавтра) в \d+:\d+) (.+)
и $request = mb_strtolower($matches[7]);
-
xor
- Сообщения: 2038
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
-
Благодарил (а):
284 раза
-
Поблагодарили:
629 раз
Сообщение
xor » Ср мар 28, 2018 9:13 am
И вот, что интересно. У меня шаблоны регистронезависимые, а тут многие закладываются на заглавные/прописные буквы.
(Напомни|напомни)
Я один такой?
Отправлено с моего Redmi 4X через Tapatalk
-
Logrus
- Сообщения: 2079
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
-
Благодарил (а):
313 раз
-
Поблагодарили:
457 раз
Сообщение
Logrus » Ср мар 28, 2018 7:32 pm
-(Напомни|напомни)
у меня если названо с заглавной шаблон, так и распознает
-ага, в сценарии не работал
в третьем посту в сценарий, массив =>
Telegram |
Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с
10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) )))
Спасибо
-
Krz
- Сообщения: 22
- Зарегистрирован: Сб мар 24, 2018 3:51 pm
- Откуда: Сибирь
-
Благодарил (а):
2 раза
-
Поблагодарили:
17 раз
Сообщение
Krz » Сб мар 31, 2018 3:08 pm
Непонятно как-то. У меня с указанным мною шаблоном и кодом работает исправно, и слова не пропадают
20:06 Алиса: Вы просили напомнить надеть кроссовки на босу ногу и бежать по улице
20:06 Алиса: Вы просили напомнить попить чай с сахаром
20:04 Алиса: Задание напомнить попить чай с сахаром установлено на тридцать первое марта в 20:06
20:04 Admin: Напомни через две минуты попить чай с сахаром
20:03 Алиса: Задание напомнить надеть кроссовки на босу ногу и бежать по улице установлено на тридцать первое марта в 20:06
20:03 Admin: Напомни через три минуты надеть кроссовки на босу ногу и бежать по улице
-
fandaymon
- Сообщения: 1553
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
-
Благодарил (а):
39 раз
-
Поблагодарили:
574 раза
Сообщение
fandaymon » Сб мар 31, 2018 3:17 pm
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
- Откуда: Сибирь
-
Благодарил (а):
2 раза
-
Поблагодарили:
17 раз
Сообщение
Krz » Вс апр 01, 2018 2:47 pm
fandaymon писал(а):когда вначале шаблона есть {} то шаблон неоднозначно отрабатывает
Там стоят квадратные скобки, а не фигурные
-
fandaymon
- Сообщения: 1553
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
-
Благодарил (а):
39 раз
-
Поблагодарили:
574 раза
Сообщение
fandaymon » Вс апр 01, 2018 2:49 pm
Krz писал(а):fandaymon писал(а):когда вначале шаблона есть {} то шаблон неоднозначно отрабатывает
Там стоят квадратные скобки, а не фигурные
Да - квадратные и имелись в виду
-
Stasev
- Сообщения: 16
- Зарегистрирован: Пн мар 19, 2018 12:55 am
-
Благодарил (а):
6 раз
-
Поблагодарили:
3 раза
Сообщение
Stasev » Вт апр 03, 2018 9:19 pm
Перепробовал кучу вариантов - чет у меня так и не получается чтоб не пропадало последнее слово. Приходится говорить ей в конце "Спасибо"
-
fandaymon
- Сообщения: 1553
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
-
Благодарил (а):
39 раз
-
Поблагодарили:
574 раза
Сообщение
fandaymon » Вт апр 03, 2018 9:38 pm
Stasev писал(а): ↑Вт апр 03, 2018 9:19 pm
Перепробовал кучу вариантов - чет у меня так и не получается чтоб не пропадало последнее слово. Приходится говорить ей в конце "Спасибо"
Вот такой - должен работать
напомни ((через (\d+|один|одну|дв[ае]|три|четыре|пять|шесть|семь|восемь|девять) (часа|час|часов|минут|минуту|минуты|секунд|секунды|секунду))|в \d+:\d+|(завтра|послезавтра|сегодня|на завтра|на послезавтра) в \d+:\d+) (.+)
- За это сообщение автора fandaymon поблагодарили (всего 3):
- Stasev (Вт апр 03, 2018 10:58 pm) • Jilber (Вт апр 03, 2018 11:31 pm) • lostar-igor (Ср июл 11, 2018 3:27 pm)
-
Stasev
- Сообщения: 16
- Зарегистрирован: Пн мар 19, 2018 12:55 am
-
Благодарил (а):
6 раз
-
Поблагодарили:
3 раза
Сообщение
Stasev » Вт апр 03, 2018 10:58 pm
fandaymon писал(а): ↑Вт апр 03, 2018 9:38 pm
Stasev писал(а): ↑Вт апр 03, 2018 9:19 pm
Перепробовал кучу вариантов - чет у меня так и не получается чтоб не пропадало последнее слово. Приходится говорить ей в конце "Спасибо"
Вот такой - должен работать
напомни ((через (\d+|один|одну|дв[ае]|три|четыре|пять|шесть|семь|восемь|девять) (часа|час|часов|минут|минуту|минуты|секунд|секунды|секунду))|в \d+:\d+|(завтра|послезавтра|сегодня|на завтра|на послезавтра) в \d+:\d+) (.+)
Блин, вот это вот [Нн] оказывается мешало. Спасибо. Теперь заработало как надо.