2016-08-16 2 views
2

Ich möchte ersetzen verwenden, um '[' and ']' in einer Zeichenfolge zu finden und durch blank spaces ersetzen.Wie benutze ich fn: replace (string, pattern, replace)?

Ich habe versucht, die folgenden:

${fn:replace('[aus,zar]','(\[|\])','')} 

aber mein System eine Ausnahme werfen.

+0

Das ['fn: replace()'] (http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/fn/replace.fn.html) verwendet keinen regulären Ausdruck basierter Ersatz. Siehe [diese Antwort] (http://stackoverflow.com/a/10417446/3832970). Verwenden Sie '.replaceAll (" [\\] \\ [] + "," ")'. –

+0

Sie können versuchen, '$ {fn: ersetzen (fn: ersetzen ('[aus, zar]', ']', ''), '[', '')}' wenn Sie nur diese 2 ' 'und'] 'Zeichen. –

+0

Das scheint nicht so gut zu funktionieren und wirft wieder eine Exception. – Bevin

Antwort

0

die eckigen Klammern entkommen:

fn:replace('[aus,zar]', '\\[|\\]', '') 

Eckige Klammern Sonderzeichen in regex und müssen bedeuten, wörtliche Zeichen maskiert werden.

Beachten Sie, dass Sie die runden Klammern nicht benötigen.