Hi,
$test_alt ist ein String vom User der überprüft werden soll.
Alles was nicht eines dieser Zeichen ist soll ersetzt werden: [...]
$test_alt='0123456789qwertzuiopüasdfghjklöäyxcvbnmQWERTZUIOPÜASDFGHJKLÖÄYXCVBNMß+-*/=.,;:?!()[]{}&"@'§$%\_<>|^°`´¢';
$test_neu=preg_replace("/[1]+$\s/", "?", $test_alt);
echo $test_neu;
>
> Aber warum funktioniert das nicht?
Weil du hier sagst, dass du nur dann, wenn der komplette String von vorne bis hinten \*ausschließlich\* aus den angegebenen Zeichen besteht, ihn durch ein einzelnes Fragezeichen ersetzen möchtest.
(Und dann möchtest du „nach dem Ende“ auch noch zusätzlich ein Whitespace-Zeichen haben ...)
> Und noch wichtiger, warum funktioniert es nicht einmal so:
>
> ~~~php
$test_alt='0123456789qwertzuiopüasdfghjklöäyxcvbnmQWERTZUIOPÜASDFGHJKLÖÄYXCVBNMß+-*/=.,;:?!()[]{}&"@\'§$%\\_<>|^°`´¢';
> $test_neu=preg_replace("/^[A-Za-z0-9]+$\s/", "?", $test_alt);
> echo $test_neu;
Weil auch hier nicht zutrifft, dass $test_alt *ausschließlich*, von vorne bis hinten, aus Buchstaben und Ziffern besteht, was du aber verlangst.
Der neue String ist immer gleich dem alten...
Kein Treffer, also auch nichts zu ersetzen.
Kann mir bitte jemand helfen ein Suchmuster zu erstellen, welches oben genannte Zeichen zulässt, und den Rest durch ? oder * ersetzt?
Informiere dich, was Zeichenklassen sind, und wie man sie negiert.
Ebenfalls dankbar wäre ich, wenn mir jemand einen Link zu einer Aleitung gibt, wo man das nachlesen kann.
http://www.google.com/search?q=regex+tutorial
MfG ChrisB
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
A-Za-z0-9\ä\ö\ü\Ä\Ö\Ü\ß+-*/=.,:;?!()[]{}&"@_' ↩︎