• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Leerzeichen vor jeden Großbuchstaben setzen

Status
Für weitere Antworten geschlossen.

seblon

Mitglied
Hallo liebe Community,
ich habe ein String in dem Steht zum Beispiel:
Hallo ich bin ein StringTest

Nun möchte ich, das der String wie folgt wird:
Hallo ich bin ein String Test

Es soll also vor jeden Großbuchstaben ein Leerzeichen gesetzt werden (sofern noch keines davor steht).

Ich denke das wird für jemand der sich mit regulären Ausdrücken auskennt kein Problem darstellen, ich allerdings bin ein absoluter Noob bei preg_replace etc.

Wäre schön wenn mir hier jemand eine Funktion schreibn könnte :)

Danke schonmal im vorraus an alle die sich bemühen!
 
Werbung:
Hab dir ma ne funktion dafür geschrieben mir war langweilig..
PHP:
<?php
function uppercase_letter_convert($str){	
	$split = str_split($str);
	$out = "";
	foreach($split as $string){
		if (preg_match('#^[A-ZÖÄÜ]#',$string) ){
			$out .= " ".$string;
		}else{
			
			$out .= $string;
		}
	}	
	return $out;
	
}


$text = "Hallo IchBin ein TestText";
echo uppercase_letter_convert($text);
?>
 
Werbung:
Hallo,

das von T-sneak fügt vor jeden Großbuchstaben ein Leerzeichen ein, das könnte man auch mit str_replace machen.


Über [^\s]{1,1} kann man sicherstellen, dass alles außer einem Whitespace vor dem Buchstaben steht.

PHP:
$text = "Hallo IchBin ein TestText";
echo preg_replace('#([^\s]{1,1})([A-ZÄÖÜ]{1,1})#', '$1 $2', $text);


N43
 
Was bringen die ganzen {1, 1}? Kann man nicht auch einfach:
PHP:
$text = "Hallo IchBin ein TestText"; 
echo preg_replace('#(?<!( |^))[A-ZÄÖÜ]#', ' $0', $text);
 
Werbung:
Ich weiß nicht wie pingelig php da ist, aber sollte eigentlich gehen.
Statt ([A-ZÄÖÜ]) lässt sich auch \W verwenden (großes W für große Buchstaben, da weiß ich halt net wie pingelig genau php das nimmt)
Dann wäre das einfach
Code:
/[^\s]\W/
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben