<?php

$regexp = '/((жы|шы)[а-я]*|\b[^,][\s]*(но|а)\b|[,;!\?:][^\s][а-я]*|координально|(сдесь|здел(аю|ал|ан)))/ui';
$text   = 'одно дно. карл жыл шыл у;клары?координально! мышка:хорошая работа олег зделан двач зделаю сдесь а я молодец но как бы и не очень';
echo "Введенный текст: {$text}\n";

$match = array();

if (preg_match_all($regexp, $text, $match)) {
    foreach ($match[0] as $el) {
        echo "Найдена ошибка: {$el}\n";
    }
}

$regexpJi         = '/жы/ui';
$regexpShi        = '/шы/ui';
$regexpSigns      = '/([,;!\?:])([^\s])/ui';
$regexpCardinally = '/координально/ui';
$regexpSdelal     = '/сдесь/ui';
$regexpZdelal     = '/здел(аю|ал|ан)/ui';
$regexpNoA        = '/\b[^,][\s]*(но|а)\b/ui';

$result = preg_replace($regexpJi, 'жи', $text);
$result = preg_replace($regexpShi, 'ши', $result);
$result = preg_replace($regexpSigns, '$1 $2', $result);
$result = preg_replace($regexpCardinally, 'кардинально', $result);
$result = preg_replace($regexpSdelal, 'здесь', $result);
$result = preg_replace($regexpZdelal, 'сдел$1', $result);
$result = preg_replace($regexpNoA, ', $1', $result);

echo $result;