können Sie verwenden preg_replace
als:
$item = preg_replace('/\(.*?\)/s','',$item);
Sieht aus wie Sie auch nach dem Austausch führende und nachfolgende Leerzeichen entfernen möchten.
Sie können von trim
dafür, wie machen:
$item = trim(preg_replace('/\(.*?\)/s','',$item));
Die Regex verwendete \(.*?\)
:
(
und )
sind Regex Metazeichen zur Gruppierung verwendet. Um die wörtliche Paranthesis zu entsprechen, müssen Sie sie durch vorangehende mit einem \
entkommen lassen.
- Sie können jeden beliebigen Text zwischen die Klammer mit
.*?
. Sie könnte auch das gleiche tun mit [^)]*
.
entspricht standardmäßig nicht newline. Um einen neuen Zeilenumbruch zu erzeugen, verwenden wir den Modifikator s
. Ohne sie würden es uns nicht gelingen, den Ersatz in "(hello\nworld) Hi"
was ist der Unterschied zwischen Ihnen und stillstanding-Lösung zu tun? – James
@Happy: Ich habe per Post aktualisiert. – codaddict
Warum?. *? '? Würde nicht einfach '. *' Genauso gut funktionieren? ('.' passt auf ein beliebiges Zeichen,' * 'wiederholt den Spezifizierer null oder mehrmals, dann'? ', um zu bestimmen, ob diese null oder mehr Zeichen vorhanden sind oder nicht.) –