JSF: gewusst Wie: ersetzen Sie "\\" in einem string
Angenommen ich habe den string text\\
ich ersetzen müssen \\
mit /
. Ich habe versucht, den folgenden Ausdruck:
/* str = "text\\" */
<h:outputText value="#{fn:replace(str, '\\', '/')}" />
Aber ich Laufe immer in die folgende Ausnahme:
Caused by: java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
^
at java.util.regex.Pattern.error(Pattern.java:1924)
at java.util.regex.Pattern.compile(Pattern.java:1671)
at java.util.regex.Pattern.<init>(Pattern.java:1337)
at java.util.regex.Pattern.compile(Pattern.java:1022)
at java.lang.String.replaceAll(String.java:2210)
at com.sun.faces.facelets.tag.jstl.fn.JstlFunction.replace(JstlFunction.java:222)
Ich würde sehr dankbar sein, wenn Sie ihm geben könnte mir einen Rat.
UPDATE: Basiert auf den Antworten unten, fand ich heraus, dass der folgende Ausdruck:
<h:outputText value="#{fn:replace(str, '\\\\', '/')}" />
Beste Grüße,
- Sie möchten die Ausgabe von text\\ text// oder text -/ ?
- Ich möchte es für
text/
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese (noch nicht überprüft....)
http://java.sun.com/jsp/jstl/core
? ist es JSF 2 app ?Ich glaube, Sie brauchen, um zu entkommen die backslashes. Versuchen Sie dies:
replace("\\\\", "/")
Ausgabe:
fn:replace()
verwendetString#replaceAll()
unter der Decke, nichtString#replace()
(wenn Sie die Aufmerksamkeit auf die stacktrace, müssten Sie auch gesehen haben).Nur um zu zeigen, mit einem umgekehrten Schrägstrich:
Wenn ich die Eingabe als text\\ bekomme ich die Ausgabe als text//