26 lines
579 B
PHP
26 lines
579 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Knowledge\Text;
|
|
|
|
final class TextNormalizer
|
|
{
|
|
public function normalize(string $text): string
|
|
{
|
|
// Silbentrennungen entfernen
|
|
$text = preg_replace('/-\n/', '', $text);
|
|
|
|
// Windows-Zeilenumbrüche vereinheitlichen
|
|
$text = str_replace("\r\n", "\n", $text);
|
|
|
|
// Mehrfache Leerzeichen reduzieren
|
|
$text = preg_replace('/[ \t]+/', ' ', $text);
|
|
|
|
// Mehrfache Leerzeilen reduzieren
|
|
$text = preg_replace('/\n{3,}/', "\n\n", $text);
|
|
|
|
return trim($text);
|
|
}
|
|
}
|