/*«Grammar Nazi». Напиши скрипт, проверяющий текст на наличие злостных ошибок:
нет пробела после запятой, точки с запятой, восклицательного знака, вопросительного знака, двоеточия
«жи» или «ши» написано с буквой ы
в тексте есть слово «координально» или «сдесь», «зделал», «зделаю», «зделан»
в тексте есть слова «а» или «но» без запятой перед ними.
(можешь добавить еще несколько правил, если хорошо знаешь русский язык)
В случае обнаружения ошибки скрипт должен писать сообщение об этом и выводить кусок текста с ошибкой (чтобы было понятно, что не так).*/
<?php
//mb_internal_encoding('utf-8');
$text = "Текст с кучей плохих оШыбок. Сдесь я координально зделал ошыбки, а не , но а но жы поставил запятую , и ? ! , пробел перед ней." ;
$sentences = preg_split ( "/[\.?!]/u" , $text , 0 , PREG_SPLIT_NO_EMPTY
) ; foreach ( $sentences as $sentence ) {
echo "ЖИ/ШИ написано с буквой Ы в " . preg_replace ( "/[жш]ы/ui" , "[$0 ]" , $sentence ) . "\n " ; }
echo "Ошибка в слове кардинально в " . preg_replace ( "/координально/ui" , "[$0 ]" , $sentence ) . "\n " ; }
echo "Неправильно написаны слова сделал/сделаю/сделан в " . preg_replace ( "/здела[лню]/ui" , "[$0 ]" , $sentence ) . "\n " ; }
echo "Неправильно написано слово здесь в " . preg_replace ( "/сдесь/ui" , "[$0 ]" , $sentence ) . "\n " ; }
echo "Не поставили запятую перед а или но в " . preg_replace ( "/[,]{0}\s(а|но)/ui" , "[$0 ]" , $sentence ) . "\n " ; }
echo "Поставили пробел перед знаком препинания в " . preg_replace ( "/\s+[.?!:,]/u" , "[$0 ]" , $sentence ) . "\n " ; }
}
?>
LyrCq0dyYW1tYXIgTmF6acK7LiDQndCw0L/QuNGI0Lgg0YHQutGA0LjQv9GCLCDQv9GA0L7QstC10YDRj9GO0YnQuNC5INGC0LXQutGB0YIg0L3QsCDQvdCw0LvQuNGH0LjQtSDQt9C70L7RgdGC0L3Ri9GFINC+0YjQuNCx0L7QujoKCtC90LXRgiDQv9GA0L7QsdC10LvQsCDQv9C+0YHQu9C1INC30LDQv9GP0YLQvtC5LCDRgtC+0YfQutC4INGBINC30LDQv9GP0YLQvtC5LCDQstC+0YHQutC70LjRhtCw0YLQtdC70YzQvdC+0LPQviDQt9C90LDQutCwLCDQstC+0L/RgNC+0YHQuNGC0LXQu9GM0L3QvtCz0L4g0LfQvdCw0LrQsCwg0LTQstC+0LXRgtC+0YfQuNGPCsKr0LbQuMK7INC40LvQuCDCq9GI0LjCuyDQvdCw0L/QuNGB0LDQvdC+INGBINCx0YPQutCy0L7QuSDRiwrQsiDRgtC10LrRgdGC0LUg0LXRgdGC0Ywg0YHQu9C+0LLQviDCq9C60L7QvtGA0LTQuNC90LDQu9GM0L3QvsK7INC40LvQuCDCq9GB0LTQtdGB0YzCuywgwqvQt9C00LXQu9Cw0LvCuywgwqvQt9C00LXQu9Cw0Y7CuywgwqvQt9C00LXQu9Cw0L3CuwrQsiDRgtC10LrRgdGC0LUg0LXRgdGC0Ywg0YHQu9C+0LLQsCDCq9Cwwrsg0LjQu9C4IMKr0L3QvsK7INCx0LXQtyDQt9Cw0L/Rj9GC0L7QuSDQv9C10YDQtdC0INC90LjQvNC4Lgoo0LzQvtC20LXRiNGMINC00L7QsdCw0LLQuNGC0Ywg0LXRidC1INC90LXRgdC60L7Qu9GM0LrQviDQv9GA0LDQstC40LssINC10YHQu9C4INGF0L7RgNC+0YjQviDQt9C90LDQtdGI0Ywg0YDRg9GB0YHQutC40Lkg0Y/Qt9GL0LopCgrQkiDRgdC70YPRh9Cw0LUg0L7QsdC90LDRgNGD0LbQtdC90LjRjyDQvtGI0LjQsdC60Lgg0YHQutGA0LjQv9GCINC00L7Qu9C20LXQvSDQv9C40YHQsNGC0Ywg0YHQvtC+0LHRidC10L3QuNC1INC+0LEg0Y3RgtC+0Lwg0Lgg0LLRi9Cy0L7QtNC40YLRjCDQutGD0YHQvtC6INGC0LXQutGB0YLQsCDRgSDQvtGI0LjQsdC60L7QuSAo0YfRgtC+0LHRiyDQsdGL0LvQviDQv9C+0L3Rj9GC0L3Qviwg0YfRgtC+INC90LUg0YLQsNC6KS4qLwo8P3BocAovL21iX2ludGVybmFsX2VuY29kaW5nKCd1dGYtOCcpOwokdGV4dCA9ICLQotC10LrRgdGCINGBINC60YPRh9C10Lkg0L/Qu9C+0YXQuNGFINC+0KjRi9Cx0L7Qui4g0KHQtNC10YHRjCDRjyDQutC+0L7RgNC00LjQvdCw0LvRjNC90L4g0LfQtNC10LvQsNC7INC+0YjRi9Cx0LrQuCwg0LAg0L3QtSAsINC90L4g0LAg0L3QviDQttGLINC/0L7RgdGC0LDQstC40Lsg0LfQsNC/0Y/RgtGD0Y4gLCDQuCA/ICEgLCDQv9GA0L7QsdC10Lsg0L/QtdGA0LXQtCDQvdC10LkuIjsKJHNlbnRlbmNlcyA9IHByZWdfc3BsaXQoIi9bXC4/IV0vdSIsICR0ZXh0LCAwLCBQUkVHX1NQTElUX05PX0VNUFRZKTsKZm9yZWFjaCAoJHNlbnRlbmNlcyBhcyAkc2VudGVuY2UpewogICAgaWYocHJlZ19tYXRjaCgiL1vQttGIXdGLL3VpIiwgJHNlbnRlbmNlKSl7CiAgICAgICAgZWNobyAi0JbQmC/QqNCYINC90LDQv9C40YHQsNC90L4g0YEg0LHRg9C60LLQvtC5INCrINCyICIgLiBwcmVnX3JlcGxhY2UoIi9b0LbRiF3Riy91aSIsICJbJDBdIiwgJHNlbnRlbmNlKSAuICJcbiI7CiAgICB9CiAgICBpZihwcmVnX21hdGNoKCIv0LrQvtC+0YDQtNC40L3QsNC70YzQvdC+L3VpIiwgJHNlbnRlbmNlKSl7CiAgICAgICAgZWNobyAi0J7RiNC40LHQutCwINCyINGB0LvQvtCy0LUg0LrQsNGA0LTQuNC90LDQu9GM0L3QviDQsiAiIC4gcHJlZ19yZXBsYWNlKCIv0LrQvtC+0YDQtNC40L3QsNC70YzQvdC+L3VpIiwgIlskMF0iLCAkc2VudGVuY2UpIC4gIlxuIjsKICAgIH0KICAgIGlmKHByZWdfbWF0Y2goIi/Qt9C00LXQu9CwW9C70L3Rjl0vdWkiLCAkc2VudGVuY2UpKXsKICAgICAgICBlY2hvICLQndC10L/RgNCw0LLQuNC70YzQvdC+INC90LDQv9C40YHQsNC90Ysg0YHQu9C+0LLQsCDRgdC00LXQu9Cw0Lsv0YHQtNC10LvQsNGOL9GB0LTQtdC70LDQvSDQsiAiIC4gcHJlZ19yZXBsYWNlKCIv0LfQtNC10LvQsFvQu9C90Y5dL3VpIiwgIlskMF0iLCAkc2VudGVuY2UpIC4gIlxuIjsKICAgIH0KICAgIGlmKHByZWdfbWF0Y2goIi/RgdC00LXRgdGML3VpIiwgJHNlbnRlbmNlKSl7CiAgICAgICAgZWNobyAi0J3QtdC/0YDQsNCy0LjQu9GM0L3QviDQvdCw0L/QuNGB0LDQvdC+INGB0LvQvtCy0L4g0LfQtNC10YHRjCDQsiAiIC4gcHJlZ19yZXBsYWNlKCIv0YHQtNC10YHRjC91aSIsICJbJDBdIiwgJHNlbnRlbmNlKSAuICJcbiI7CiAgICB9CiAgICBpZihwcmVnX21hdGNoKCIvXHMrKNCwfNC90L4pL3VpIiwgJHNlbnRlbmNlKSkgewogICAgICAgIGVjaG8gItCd0LUg0L/QvtGB0YLQsNCy0LjQu9C4INC30LDQv9GP0YLRg9GOINC/0LXRgNC10LQg0LAg0LjQu9C4INC90L4g0LIgIiAuIHByZWdfcmVwbGFjZSgiL1ssXXswfVxzKNCwfNC90L4pL3VpIiwgIlskMF0iLCAkc2VudGVuY2UpIC4gIlxuIjsKICAgIH0KICAgIGlmKHByZWdfbWF0Y2goIi9ccytbLj8hOixdL3UiLCAkc2VudGVuY2UpKXsKICAgICAgICBlY2hvICLQn9C+0YHRgtCw0LLQuNC70Lgg0L/RgNC+0LHQtdC7INC/0LXRgNC10LQg0LfQvdCw0LrQvtC8INC/0YDQtdC/0LjQvdCw0L3QuNGPINCyICIgLiBwcmVnX3JlcGxhY2UoIi9ccytbLj8hOixdL3UiLCAiWyQwXSIsICRzZW50ZW5jZSkgLiAiXG4iOwogICAgfQp9Cj8+
stdout
/*«Grammar Nazi». Напиши скрипт, проверяющий текст на наличие злостных ошибок:
нет пробела после запятой, точки с запятой, восклицательного знака, вопросительного знака, двоеточия
«жи» или «ши» написано с буквой ы
в тексте есть слово «координально» или «сдесь», «зделал», «зделаю», «зделан»
в тексте есть слова «а» или «но» без запятой перед ними.
(можешь добавить еще несколько правил, если хорошо знаешь русский язык)
В случае обнаружения ошибки скрипт должен писать сообщение об этом и выводить кусок текста с ошибкой (чтобы было понятно, что не так).*/
ЖИ/ШИ написано с буквой Ы в Текст с кучей плохих о[Шы]бок
ЖИ/ШИ написано с буквой Ы в Сдесь я координально зделал о[шы]бки, а не , но а но [жы] поставил запятую , и
Ошибка в слове кардинально в Сдесь я [координально] зделал ошыбки, а не , но а но жы поставил запятую , и
Неправильно написаны слова сделал/сделаю/сделан в Сдесь я координально [зделал] ошыбки, а не , но а но жы поставил запятую , и
Неправильно написано слово здесь в [Сдесь] я координально зделал ошыбки, а не , но а но жы поставил запятую , и
Не поставили запятую перед а или но в Сдесь я координально зделал ошыбки,[ а] не ,[ но][ а][ но] жы поставил запятую , и
Поставили пробел перед знаком препинания в Сдесь я координально зделал ошыбки, а не[ ,] но а но жы поставил запятую[ ,] и
Поставили пробел перед знаком препинания в [ ,] пробел перед ней