2016-12-26 5 views
1

Ich habe eine Zeichenfolge, und ich muss suchen und ersetzen solche Wörter, die nur Sonderzeichen enthalten. nein, anderer Brief zB (@@ # $$%^& %% $, &() {} ": ??).wie ersetzt man das Wort, das nur Sonderzeichen aus der Zeichenfolge enthält mit regulären Ausdruck

+0

Wollen Sie es in String ersetzen? –

+0

Hallo, willkommen zum Stack Überlauf. Geben Sie ein Beispiel Ihres Codes, zeigen Sie uns Ihre Mühe –

+0

Bitte zeigen Sie einige Testfälle, Ihren Code, was Sie bekommen und was Sie erwarten – Toto

Antwort

0

ich gehe davon aus t "Wörter", die nur Sonderzeichen enthalten, sind Teile von Nicht-Leerzeichen, die keine Wortzeichen (Buchstaben/Ziffern/Unterstriche) sind.

Das bedeutet, dass Sie die Zeichenfolge mit Leerzeichen aufteilen (mit preg_split('~\s+~', $s)), erhalten alle Stücke loszuwerden, die nur aus nicht-Wort Zeichen bestehen (mit preg_grep('~^\W+$~', $arr, PREG_GREP_INVERT)), und dann kommen die Stücke mit einem Raum:

$s = "''' Dec 2016, ?!$%^ End '''"; 
$result = implode(" ", preg_grep('~^\W+$~', preg_split('~\s+~', $s), PREG_GREP_INVERT)); 
echo $result; 

Sehen Sie die PHP demo

+0

Danke, Wiktor Stribiżew das ist wirklich Arbeit für mich. Das ist eine gute Lösung. – user3300038

+0

Froh, dass es für dich funktioniert hat. Bitte denken Sie daran, die Antwort zu akzeptieren, indem Sie ✓ auf der linken Seite klicken (siehe [So akzeptieren Sie SO-Antworten] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)). –

0

Funktion

function clean($string) { 
    $string = str_replace(' ', '-', $string); // Replaces all spaces with hyphens. 
    $string = preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars. 

    return preg_replace('/-+/', '-', $string); // Replaces multiple hyphens with single one. 
} 

Verbrauch:

echo clean('a|"[email protected]£de^&$f g'); 

code link

+0

Nicht sicher, dass es die Frage beantwortet. OP sagte, dass es eine Zeichenfolge mit dem Wort ** s ** gibt und einige von ihnen ** nur ** Sonderzeichen enthalten. – Toto

+0

seine Arbeit Checkout diesen Link https://eval.in/704540 –

Verwandte Themen