fork download
  1. <?php
  2. $text="Жывотные координально сдесь шыпят.Я зделал всё,а они всё равно шыппппят";
  3.  
  4. $patterns[0]=array('жы[а-я]*','шы[а-я]*','координально','сдесь','зделал','[.](?:\\S)','(,а)','(,но)');
  5. $patterns[1]=array('жы','шы','координально','сдесь','зделал','[.](?:\\S)','(,а)','(,но)');
  6.  
  7. foreach ($patterns as $pkey=>$pvalue){
  8. foreach ($patterns[$pkey] as $key=>$val){
  9. $patterns[$pkey][$key]="/".$patterns[$pkey][$key]."/ui";
  10. }
  11. }
  12.  
  13. $replacements =array('жи','ши','кардинально','здесь','сделал','. ',', а',', но');
  14.  
  15. $matches=[];
  16. for ($i=0;$i<count($patterns[0]);$i++){
  17. $count=preg_match_all($patterns[0][$i],$text,$matches);
  18. //var_dump($matches);
  19. if ($count!=0){
  20. for($j=0;$j<count($matches[0]);$j++)
  21. echo "Ошибка: ".$matches[0][$j]."\n";
  22. }
  23.  
  24. }
  25.  
  26.  
  27. echo "Надо так: ".preg_replace($patterns[1],$replacements,$text); //съедает Я
Success #stdin #stdout 0.02s 52472KB
stdin
Standard input is empty
stdout
Ошибка: Жывотные
Ошибка: шыпят
Ошибка: шыппппят
Ошибка: координально
Ошибка: сдесь
Ошибка: зделал
Ошибка: .Я
Ошибка: ,а
Надо так: животные кардинально здесь шипят.  сделал всё, а они всё равно шиппппят