[regex] ß ersetzen, aber nur wenn buchstaben drum herum stehen

theonlyone

Grünschnabel
sorry für das blöde topic, aber ich wusst net wie ich's sonst
besser schreiben sollt :D

nun wäre meine absicht, das ß nur zu ersetzen, wenn's nich
in nem wort steht .. also gedacht ich halt grad mal zu überprüfen
ob links bzw rechts davon ein buchstabe (a-z) steht ..

$val = preg_replace("/[^a-z](.)|(.)[^a-z]/","\\1x\\2",$val);
$val = preg_replace("/([^A-Za-z])ß([^A-Za-z])/","\\1X\\2",$val);
$val = preg_replace("/([^A-Za-z]*)ß([^A-Za-z]*)/isU","\\1X\\2",$val);

das waren mal meine Ansätze, funktionieren aber alle nicht
einwandfrei ... weis da vllt einer weiter ?
da soll er dann beide ßß ersetzen, weil is ja kein a-z daneben ..
wäre echt cool, wenn mir da jemand auf die sprünge helfen könnt ;)

/* vielen dank, hab's jetzt mit nem kleinen work-around gemacht :)
falls doch noch jemand tipps hat, immer her damit :D */
 
Zuletzt bearbeitet:
also du machst es dir wirklich schwer :)


PHP:
if (!eregi(" ß ", $val)) {
    $val = ereg_replace (" ß ", " das_was_du_da_haben_willst ", $val);

}
 
Zuletzt bearbeitet:
Solche Sachen am besten mit str_replace machen, ist in dem Fall die schnellste Methode.
PHP:
$text = str_replace(" ß ", " ss ", $text);
 
äh ja mom :D

so einfach isses ja nich wirklich ... oder täusch ich mich ..
ich hab jetzt grad nommal ausgetüftelt, nach welchem muster
ersetzt werden müsste ..

links vom ß muss mind. 1 buchstabe stehen, ohne leerzeichen
dazwischen. rechts kann ein leerzeichen stehen oder ein buch-
stabe, muss aber nicht .. so müsste es jetzt glaub passen ..

beispiele wären zB (welche getroffen werden sollen)
blabla_süßer_blabla
hatten_ihren_spaß___

und die andere seite:
t__ß__xxx
1_ß_anton ..

so müsst's jetzt eingentlich stimmen :)
wenn das jemand auf die reihe kriegt ... ich mach halt grad
nen umweg über ß, welches ß bleiben soll, ersetzen, dann alle
übriggebliebenen ß ersetzen und das ersetzte ß wieder zurück :D
 
Zurück