fork(1) download
  1. <?php
  2.  
  3. $regexp = '/((жы|шы)[а-я]*|\b[^,][\s]*(но|а)\b|[,;!\?:][^\s][а-я]*|координально|(сдесь|здел(аю|ал|ан)))/ui';
  4. $text = 'карл жыл шыл у;клары?координально! мышка:хорошая работа олег зделан двач зделаю сдесь а я молодец но как бы и не очень';
  5. echo "Введенный текст: {$text}\n";
  6.  
  7. $match = array();
  8.  
  9. if (preg_match_all($regexp, $text, $match)) {
  10. foreach ($match[0] as $el) {
  11. echo "Найдена ошибка: {$el}\n";
  12. }
  13. }
  14.  
  15. $regexpJi = '/жы/ui';
  16. $regexpShi = '/шы/ui';
  17. $regexpSigns = '/([,;!\?:])([^\s])/ui';
  18. $regexpCardinally = '/координально/ui';
  19. $regexpSdelal = '/сдесь/ui';
  20. $regexpZdelal = '/здел(аю|ал|ан)/ui';
  21. $regexpNoA = '/\b[^,][\s]*(но|а)\b/ui';
  22.  
  23. $result = preg_replace($regexpJi, 'жи', $text);
  24. $result = preg_replace($regexpShi, 'ши', $result);
  25. $result = preg_replace($regexpSigns, '$1 $2', $result);
  26. $result = preg_replace($regexpCardinally, 'кардинально', $result);
  27. $result = preg_replace($regexpSdelal, 'здесь', $result);
  28. $result = preg_replace($regexpZdelal, 'сдел$1', $result);
  29. $result = preg_replace($regexpNoA, ', $1', $result);
  30.  
  31. echo $result;
Success #stdin #stdout 0.02s 24764KB
stdin
Standard input is empty
stdout
Введенный текст: карл жыл шыл у;клары?координально! мышка:хорошая работа олег зделан двач зделаю сдесь а я молодец но как бы и не очень
Найдена ошибка: жыл
Найдена ошибка: шыл
Найдена ошибка: ;клары
Найдена ошибка: ?координально
Найдена ошибка: :хорошая
Найдена ошибка: зделан
Найдена ошибка: зделаю
Найдена ошибка: сдесь
Найдена ошибка:  а
Найдена ошибка:  но
карл жил шил у; клары? кардинально! мышка: хорошая работа олег сделан двач сделаю здесь, а я молодец, но как бы и не очень