Код: Выделить всё
(Напомни|напомни) ((через (\d+|один|одну|дв[ае]|три|четыре|пять|шесть|семь|восемь|девять) (часа|час|часов|минут|минуту|минуты|секунд|секунды|секунду))|в \d+:\d+|(завтра|послезавтра|сегодня|на завтра|на послезавтра) в \d+:\d+) (.+) Модератор: immortal
Код: Выделить всё
(Напомни|напомни) ((через (\d+|один|одну|дв[ае]|три|четыре|пять|шесть|семь|восемь|девять) (часа|час|часов|минут|минуту|минуты|секунд|секунды|секунду))|в \d+:\d+|(завтра|послезавтра|сегодня|на завтра|на послезавтра) в \d+:\d+) (.+) 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 писал(а):Непонятно как-то. У меня с указанным мною шаблоном и кодом работает исправно, и слова не пропадают20:06 Алиса: Вы просили напомнить надеть кроссовки на босу ногу и бежать по улице
20:06 Алиса: Вы просили напомнить попить чай с сахаром
20:04 Алиса: Задание напомнить попить чай с сахаром установлено на тридцать первое марта в 20:06
20:04 Admin: Напомни через две минуты попить чай с сахаром
20:03 Алиса: Задание напомнить надеть кроссовки на босу ногу и бежать по улице установлено на тридцать первое марта в 20:06
20:03 Admin: Напомни через три минуты надеть кроссовки на босу ногу и бежать по улице
Там стоят квадратные скобки, а не фигурныеfandaymon писал(а):когда вначале шаблона есть {} то шаблон неоднозначно отрабатывает
Да - квадратные и имелись в видуKrz писал(а):Там стоят квадратные скобки, а не фигурныеfandaymon писал(а):когда вначале шаблона есть {} то шаблон неоднозначно отрабатывает
Вот такой - должен работатьStasev писал(а): Вт апр 03, 2018 9:19 pm Перепробовал кучу вариантов - чет у меня так и не получается чтоб не пропадало последнее слово. Приходится говорить ей в конце "Спасибо"![]()
Блин, вот это вот [Нн] оказывается мешало. Спасибо. Теперь заработало как надо.fandaymon писал(а): Вт апр 03, 2018 9:38 pmВот такой - должен работатьStasev писал(а): Вт апр 03, 2018 9:19 pm Перепробовал кучу вариантов - чет у меня так и не получается чтоб не пропадало последнее слово. Приходится говорить ей в конце "Спасибо"![]()
напомни ((через (\d+|один|одну|дв[ае]|три|четыре|пять|шесть|семь|восемь|девять) (часа|час|часов|минут|минуту|минуты|секунд|секунды|секунду))|в \d+:\d+|(завтра|послезавтра|сегодня|на завтра|на послезавтра) в \d+:\d+) (.+)