fork(2) download
  1. <?php
  2.  
  3.  
  4. $dvachText = "много их в Петербурге,молоденьких дур,сегодня в атласе да бархате,а завтра , поглядишь , метут улицу вместе с голью кабацкою...в самом деле ,что было бы с нами ,если бы вместо общеудобного правила:чин чина почитай , ввелось в употребление другое,например:ум ума почитай?какие возникли бы споры!";
  5.  
  6. function makeFirstLetterUp($str) {
  7. $letter = mb_strtoupper(mb_substr($str, 0, 1));
  8. $str = preg_replace('/^[а-яa-z]/u', $letter, $str);
  9. return $str;
  10. }
  11.  
  12. function fixText($str){
  13. $regexpList = [
  14. '/\s+([,:;!]|[?.]+)(\S)/u',
  15. '/\s+(([,:;!]|[?.]+)\s+)/u',
  16. '/(\S([,:;!]|[?.]+))(\S)/u',
  17. '/(\S[,:;!]|[?.]+)\s{2,}/u'
  18. ];
  19. $listFix = [
  20. '$1 $2',
  21. '$1',
  22. '$1 $3',
  23. '$1 '
  24. ];
  25. $str = preg_replace($regexpList, $listFix, $str);
  26. $dvachList = [];
  27. $dvachList = preg_split('/(?<=[.!?][ ])/u', $str);
  28. $newDvachList = [];
  29. foreach($dvachList as $dvachStr) {
  30. $newDvachList[] = makeFirstLetterUp($dvachStr);
  31. }
  32. $str = implode('', $newDvachList);
  33. echo $str;
  34. }
  35.  
  36. fixText($dvachText);
  37.  
Success #stdin #stdout 0.02s 24572KB
stdin
Standard input is empty
stdout
Много их в Петербурге, молоденьких дур, сегодня в атласе да бархате, а завтра, поглядишь, метут улицу вместе с голью кабацкою... В самом деле, что было бы с нами, если бы вместо общеудобного правила: чин чина почитай, ввелось в употребление другое, например: ум ума почитай? Какие возникли бы споры!