fork(1) download
  1. <?php
  2. header("Content-Type: text/plain; charset=utf-8");
  3. error_reporting(E_ALL | E_STRICT);
  4.  
  5. $text = <<<EOF
  6. МУУ ГООУО ОПП по Удмуртинской Области объявляет конкурс на поставку кaнцелярских тoваров на сумму 100500 руб.
  7. МУУ ГООУО ОПП по Удмуртинской Области объявляет конкурс на поставку автoмобиля Mеrcеdеs S500 с отделкой из 24-каратного зoлoта методом гальванирования и инкрустированного ценными породами дерева (кoрень кaлифорнийскoго ореха, отделка из тюльпaнного дeрева) для служебных нужд на сумму 10 787 412 руб.
  8. EOF;
  9.  
  10. echo 'Текст: ' . $text . "\n\n";
  11. $regex = '/\s(?P<rFirst>[а-яёА-ЯЁ]+)(?P<rSecond>[a-zA-Z]+)(?P<rThird>([а-яёА-ЯЁ]*[a-zA-Z]*)*)|\s(?P<eFirst>[a-zA-Z]+)(?P<eSecond>[а-яёА-ЯЁ]+)(?P<eThird>([a-zA-Z]*[а-яёА-ЯЁ]*)*)/u';
  12.  
  13. preg_match_all($regex,$text,$matches,PREG_SET_ORDER);
  14.  
  15.  
  16. foreach ($matches as $match) {
  17. $word = ltrim($match[0]);
  18. if (isset($match['eFirst']))
  19. echo 'Опечатка в слове ' . $word . ': ' . $match['eFirst'] . '[' . $match['eSecond'] .
  20. ']' . $match['eThird'] . "\n";
  21. else
  22. echo 'Опечатка в слове ' . $word . ': ' . $match['rFirst'] . '[' . $match['rSecond'] .
  23. ']' . $match['rThird'] . "\n";
  24. }
Success #stdin #stdout 0.02s 52472KB
stdin
Standard input is empty
stdout
Текст: МУУ ГООУО ОПП по Удмуртинской Области объявляет конкурс на поставку кaнцелярских тoваров на сумму 100500 руб.
МУУ ГООУО ОПП по Удмуртинской Области объявляет конкурс на поставку автoмобиля Mеrcеdеs S500 с отделкой из 24-каратного зoлoта методом гальванирования  и инкрустированного ценными породами дерева (кoрень кaлифорнийскoго ореха, отделка из тюльпaнного дeрева) для служебных нужд на сумму 10 787 412 руб.

Опечатка в слове кaнцелярских: к[a]нцелярских
Опечатка в слове тoваров: т[o]варов
Опечатка в слове автoмобиля: авт[o]мобиля
Опечатка в слове Mеrcеdеs: M[е]rcеdеs
Опечатка в слове зoлoта: з[o]лoта
Опечатка в слове кaлифорнийскoго: к[a]лифорнийскoго
Опечатка в слове тюльпaнного: тюльп[a]нного
Опечатка в слове дeрева: д[e]рева