fork(1) download
  1. <?php
  2. /*Если ты сделал задачу про Grammar Nazi, сделай скрипт, которы вместо сообщения об ошибках будет молча
  3. их исправлять.*/
  4.  
  5. $text = "Привет,Жырный!труд:Шырокий?пассаЖЫР;зделаю Координально но, например Сдесь решена проблема ушыбов.
  6. Зделано многое а? ведь эти ушы зделали мы.";
  7.  
  8. $pattern = ['/(к|К)оординально/ui',
  9. '/([,;!?:])([^,;!?:\\s]+)/u',
  10. '/([а-яА-Я]*[^,])\\s((?:а|но).?)/u'];
  11.  
  12. $replacement = ['$1ардинально',
  13. '$1 $2',
  14. '$1, $2'];
  15.  
  16. $orphPatt2 = '/(с|С)десь/ui';
  17. $orphPatt3 = '/(?:(з|З)дела)((?:ю|л|н)\\s*)/ui';
  18. $orphPatt4 = '/([а-яё]*(?:ж|ш))(ы)([а-яё]*)/ui';
  19.  
  20. $matches = array();
  21.  
  22. $cleanString = preg_replace($pattern, $replacement, $text);
  23.  
  24. $cleanString = preg_replace_callback($orphPatt2,
  25. function ($matches){
  26. if (preg_match('/с/u',$matches[1])){
  27. return 'здесь';
  28. } else {
  29. return 'Здесь';
  30. }
  31. }, $cleanString);
  32.  
  33. $cleanString = preg_replace_callback($orphPatt3,
  34. function ($matches){
  35. if (preg_match('/з/u',$matches[1])){
  36. $result = "сдела{$matches[2]}";
  37. return $result;
  38. } else {
  39. $result = "Сдела{$matches[2]}";
  40. return $result;
  41. }
  42. }, $cleanString);
  43.  
  44. $cleanString = preg_replace_callback($orphPatt4,
  45. function ($matches){
  46. if (preg_match('/ы/u',$matches[2])){
  47. $result = "{$matches[1]}и{$matches[3]}";
  48. return $result;
  49. } else {
  50. $result = "{$matches[1]}И{$matches[3]}";
  51. return $result;
  52. }
  53. }, $cleanString);
  54.  
  55. echo $text."\n";
  56. echo $cleanString;
Success #stdin #stdout 0.02s 52472KB
stdin
Standard input is empty
stdout
Привет,Жырный!труд:Шырокий?пассаЖЫР;зделаю Координально но, например Сдесь решена проблема ушыбов.
		Зделано многое а? ведь эти ушы зделали мы.
Привет, Жирный! труд: Широкий? пассаЖИР; сделаю Кардинально, но, например Здесь решена проблема ушибов.
		Сделано многое, а? ведь эти уши сделали мы.