Regex das ganze Wort zu ersetzen, wenn jedes Wort alle nicht alphanumerischen Zeichen oder Leerzeichen enthält

StackOverflow https://stackoverflow.com/questions/2940848

Frage

z

string = "Dies ist ein Re @ lly lange, lange, lange Satz!";

wird

string = "Dies ist ein langer Satz";

Im Grunde, so dass alle nicht-alphanumerische Worte oder entfernt zu halten Räume in Angeheftetes

Irgendwelche Ideen?

War es hilfreich?

Lösung

Versuchen Sie dieses:

preg_replace("/(^|\\s)\\S*?[^ a-zA-Z0-9]\\S*?(\\s|$)/", '$1', $string)

Andere Tipps

Ich denke, so etwas wie diese ganz intuitiv:

<?php

$text = "This is a #@^!%$ re@lly long long,long! sentence";
print preg_replace("/\\w*[^\\w\\s]\\w*\\s*/", "", $text);

?>

Der Ausgang ist ( als auf ideone.com gesehen):

This is a long sentence

Dies funktioniert, indem eine beliebige Folge von \w* Anpassung, die von [^\w\s] (weder ein Wortzeichen noch ein Leerzeichen) gefolgt wird, durch eine Folge von \w*\s* gefolgt. Alles, was diese Anpassung kann gelöscht werden, so dass es mit "" ersetzt wird.

Siehe auch

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top