Я использую следующее в GWT, чтобы найти обратную косую черту в строке и заменить на \\.
String name = "\path\item";
name = RegExp.compile("/\\/g").replace(name, "\\\\");
Но это не работает, потому что для name = \ path \ item возвращает name = \ path\ item.
хорошо, я следую рекомендациям Томаса Бройера и первого RegExp.compile ("\\", "g"). replace (bgPath, "\\\\") дает:
Caused by: com.google.gwt.core.client.JavaScriptException: (SyntaxError): trailing \ in regular expression
at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:237)
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:132)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
at com.google.gwt.regexp.shared.RegExp$.compile(RegExp.java)
at com.ait.gwt.authtool.client.ui.TicketViewer.<init>(TicketViewer.java:197)
at com.ait.gwt.authtool.client.AuthTool.onViewTicketBtnClicked(AuthTool.java:1942)
at com.ait.gwt.authtool.client.AuthTool.onMessageReceived(AuthTool.java:1995)
at com.ait.gwt.authtool.client.events.MessageReceivedEvent.dispatch(MessageReceivedEvent.java:44)
at com.ait.gwt.authtool.client.events.MessageReceivedEvent.dispatch(MessageReceivedEvent.java:1)
at com.google.gwt.event.shared.GwtEvent.dispatch(GwtEvent.java:1)
at com.google.web.bindery.event.shared.SimpleEventBus.doFire(SimpleEventBus.java:193)
at com.google.web.bindery.event.shared.SimpleEventBus.fireEvent(SimpleEventBus.java:88)
at com.google.gwt.event.shared.SimpleEventBus.fireEvent(SimpleEventBus.java:52)
, а второй bgPath.replaceAll ("\\", "\\\\") дает:
Caused by: java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)
at com.ait.gwt.authtool.client.ui.TicketViewer.<init>(TicketViewer.java:198)
, но когдая набираю: bgPath = bgPath.replaceAll (Pattern.quote ("\"), Matcher.quoteReplacement ("\\"));
работает нормально (!!), так как дает: [INFO] [gwt_app] - !!!bgPath = Фон \\ Мультфильм \\ образ