<?php
/*
«Grammar Nazi». Напиши скрипт, проверяющий текст на наличие злостных ошибок:
нет пробела после запятой, точки с запятой, восклицательного знака, вопросительного знака, двоеточия
«жи» или «ши» написано с буквой ы
в тексте есть слово «координально» или «сдесь», «зделал», «зделаю», «зделан»
в тексте есть слова «а» или «но» без запятой перед ними.
(можешь добавить еще несколько правил, если хорошо знаешь русский язык)
В случае обнаружения ошибки скрипт должен писать сообщение об этом и выводить кусок текста с ошибкой (чтобы было понятно, что не так).
*/
$regExp = '/(сдесь|координально|здела[люн]|[жш]ы|[чщ]я|[,!?;:][^ ]|[^,][ ](а|но)[ ])/u';
$string = 'Это сдесь морж сидел?';
echo "Исходный текст: $string\n";
echo preg_match($regExp, $string, $matches) ?
"Ошибка в фрагменте: '{$matches[1]}'!\n" : "Всё правильно!\n"; ?>
PD9waHAKICAgIC8qCiAgICDCq0dyYW1tYXIgTmF6acK7LiDQndCw0L/QuNGI0Lgg0YHQutGA0LjQv9GCLCDQv9GA0L7QstC10YDRj9GO0YnQuNC5INGC0LXQutGB0YIg0L3QsCDQvdCw0LvQuNGH0LjQtSDQt9C70L7RgdGC0L3Ri9GFINC+0YjQuNCx0L7QujoKCiAgICDQvdC10YIg0L/RgNC+0LHQtdC70LAg0L/QvtGB0LvQtSDQt9Cw0L/Rj9GC0L7QuSwg0YLQvtGH0LrQuCDRgSDQt9Cw0L/Rj9GC0L7QuSwg0LLQvtGB0LrQu9C40YbQsNGC0LXQu9GM0L3QvtCz0L4g0LfQvdCw0LrQsCwg0LLQvtC/0YDQvtGB0LjRgtC10LvRjNC90L7Qs9C+INC30L3QsNC60LAsINC00LLQvtC10YLQvtGH0LjRjwogICAgwqvQttC4wrsg0LjQu9C4IMKr0YjQuMK7INC90LDQv9C40YHQsNC90L4g0YEg0LHRg9C60LLQvtC5INGLCiAgICDQsiDRgtC10LrRgdGC0LUg0LXRgdGC0Ywg0YHQu9C+0LLQviDCq9C60L7QvtGA0LTQuNC90LDQu9GM0L3QvsK7INC40LvQuCDCq9GB0LTQtdGB0YzCuywgwqvQt9C00LXQu9Cw0LvCuywgwqvQt9C00LXQu9Cw0Y7CuywgwqvQt9C00LXQu9Cw0L3CuwogICAg0LIg0YLQtdC60YHRgtC1INC10YHRgtGMINGB0LvQvtCy0LAgwqvQsMK7INC40LvQuCDCq9C90L7CuyDQsdC10Lcg0LfQsNC/0Y/RgtC+0Lkg0L/QtdGA0LXQtCDQvdC40LzQuC4KICAgICjQvNC+0LbQtdGI0Ywg0LTQvtCx0LDQstC40YLRjCDQtdGJ0LUg0L3QtdGB0LrQvtC70YzQutC+INC/0YDQsNCy0LjQuywg0LXRgdC70Lgg0YXQvtGA0L7RiNC+INC30L3QsNC10YjRjCDRgNGD0YHRgdC60LjQuSDRj9C30YvQuikKCiAgICDQkiDRgdC70YPRh9Cw0LUg0L7QsdC90LDRgNGD0LbQtdC90LjRjyDQvtGI0LjQsdC60Lgg0YHQutGA0LjQv9GCINC00L7Qu9C20LXQvSDQv9C40YHQsNGC0Ywg0YHQvtC+0LHRidC10L3QuNC1INC+0LEg0Y3RgtC+0Lwg0Lgg0LLRi9Cy0L7QtNC40YLRjCDQutGD0YHQvtC6INGC0LXQutGB0YLQsCDRgSDQvtGI0LjQsdC60L7QuSAo0YfRgtC+0LHRiyDQsdGL0LvQviDQv9C+0L3Rj9GC0L3Qviwg0YfRgtC+INC90LUg0YLQsNC6KS4KICAgICovCgogICAgJG1hdGNoZXMgPSBhcnJheSgpOwogICAgJHJlZ0V4cCA9ICcvKNGB0LTQtdGB0Yx80LrQvtC+0YDQtNC40L3QsNC70YzQvdC+fNC30LTQtdC70LBb0LvRjtC9XXxb0LbRiF3Ri3xb0YfRiV3Rj3xbLCE/OzpdW14gXXxbXixdWyBdKNCwfNC90L4pWyBdKS91JzsKICAgICRzdHJpbmcgPSAn0K3RgtC+INGB0LTQtdGB0Ywg0LzQvtGA0LYg0YHQuNC00LXQuz8nOwoKICAgIGVjaG8gItCY0YHRhdC+0LTQvdGL0Lkg0YLQtdC60YHRgjogJHN0cmluZ1xuIjsKICAgIGVjaG8gcHJlZ19tYXRjaCgkcmVnRXhwLCAkc3RyaW5nLCAkbWF0Y2hlcykgPyAi0J7RiNC40LHQutCwINCyINGE0YDQsNCz0LzQtdC90YLQtTogJ3skbWF0Y2hlc1sxXX0nIVxuIiA6ICLQktGB0ZEg0L/RgNCw0LLQuNC70YzQvdC+IVxuIjsKPz4=