fork(1) download
  1. <?php
  2. /* Клавиша shift
  3. Дан неграмотно написанный текст, состоящий из нескольких предложений на русском языке. Ошибки заключаются в неправильной расстановке пробелов и отсутствии заглавных букв. Исправь текст так, чтобы все предложения в нем начинались с большой буквы, а после знаков запятая, точка, точка с запятой, двоеточие, восклицательный и вопросительный знак стоял ровно один пробел (а перед ними — ни одного). Составные знаки вроде многоточия или 2 вопросительных знаков подряд должны сохраняться.*/
  4.  
  5. // Для тестов
  6. $text = "много их в Петербурге,молоденьких дур,сегодня в атласе да бархате,а завтра , поглядишь , метут улицу вместе с голью кабацкою.. . в самом деле ,что было бы с нами ,если бы вместо общеудобного правила:чин чина почитай , ввелось в употребление другое,например:ум ума почитай?какие возникли бы споры!";
  7. //$text = 'roses are red,and violets are blue.whatever you do i\'ll keep it for you.';
  8. //$text = 'привет.есть 2 функции,preg_split и explode ,не понимаю,в чем между ними разница.';
  9.  
  10. /* Делает первую букву в строке заглавной */
  11. function makeFirstLetterUppercase($text) {
  12. return mb_strtoupper(mb_substr($text, 0, 1)) . mb_substr($text, 1);
  13. }
  14.  
  15. /* Исправляет текст */
  16. function fixText($text) {
  17. $regExp = [
  18. "expSplit" => "/(?<=[.!?])\s*/u",
  19. "expReplace" => "/\s*([,.!?;:\"]+)\s*/u",
  20. "replacement" => "$1 "
  21. ];
  22. $arrayString = preg_split($regExp["expSplit"], $text, -1, PREG_SPLIT_NO_EMPTY);
  23. $resultString = "";
  24.  
  25. foreach ($arrayString as $string) {
  26. $resultString .= makeFirstLetterUppercase($string);
  27. }
  28.  
  29. return preg_replace($regExp["expReplace"], $regExp["replacement"], $resultString);
  30. }
  31.  
  32. $result = fixText($text);
  33. echo "$result\n";
Success #stdin #stdout 0.02s 24656KB
stdin
Standard input is empty
stdout
Много их в Петербурге, молоденьких дур, сегодня в атласе да бархате, а завтра, поглядишь, метут улицу вместе с голью кабацкою... В самом деле, что было бы с нами, если бы вместо общеудобного правила: чин чина почитай, ввелось в употребление другое, например: ум ума почитай? Какие возникли бы споры!