fork download
  1. <?php
  2. // Грамматический националист
  3.  
  4. $text = "Этот анон все правильно сказал";
  5. $errors = [
  6. 'нет пробела после запятой' => '/,\w+/ui',
  7. 'нет пробела после точки' => '/\.\w+/ui',
  8. 'нет пробела после точки с запятой' => '/;\w+/ui',
  9. 'нет пробела после двоеточия' => '/:\w+/ui',
  10. 'нет пробела после вослицательного знака ' => '/!\w+/ui',
  11. 'нет пробела после вопросительного знака' => '/\?\w+/ui',
  12. 'нет запятой перед союзом а/но' => '/\w+[^,]\s(а|но)/ui',
  13. 'орфографическая ошибка в слове кардинально' => '/координально/ui',
  14. 'орфографическая ошибка в слове здесь' => '/сдесь/ui',
  15. 'орфографическая ошибка в слове сделал' => '/зделал/ui',
  16. 'орфографическая ошибка в слове сделаю' => '/зделаю/ui',
  17. 'орфографическая ошибка в слове сделан' => '/зделан/ui',
  18. 'орфографическая ошибка в слове сделаю' => '/зделаю/ui',
  19. 'обнаружена ошибка, «жи» и «ши» пишется с буквой «и»' => '/(жы|шы)\w+/ui',
  20. ];
  21.  
  22. // Разделяем значения массива на переменные
  23. foreach ($errors as $comment => $regexp) {
  24. // Находим ошибки в тексте и отдаем массив с ними
  25. if (preg_match_all($regexp, $text, $matches)) {
  26. foreach($matches[0] as $value) {
  27. echo "Внимание: \"{$value}\" $comment\n";
  28. }
  29. }
  30. }
Success #stdin #stdout 0.02s 23816KB
stdin
Standard input is empty
stdout
Внимание: "Этот а" нет запятой перед союзом а/но