【发布时间】:2013-11-07 12:36:48
【问题描述】:
我有一个从输入字段接收到的字符串值。
String searchingText = getText();
收到一个字符串后,我搜索这个字符串。但如果字符串包含\ 符号,我的搜索将失败。
我知道特殊字符并尝试替换:
searchingText = searchingText.replaceAll("\\","\\\\");
但它给了我错误并且应用程序已关闭。
Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
经过研究,我创建了一个正则表达式并尝试用匹配器替换:
Map<String,String> sub = new HashMap<String,String>();
sub.put("\n", "\\\\n");
sub.put("\r", "\\\\r");
sub.put("\t", "\\\\t");
StringBuffer result = new StringBuffer();
Pattern regex = Pattern.compile("\\n|\\r|\\t");
Matcher matcher = regex.matcher(bodySearchText);
最后我会想要一个字符串 - searchingText = \\ 而不是 searchingText = \
请提供任何解决方案。
【问题讨论】:
-
“但它给了我错误并且应用程序已关闭” - 错误/异常是什么?请发布堆栈跟踪。
-
@laalto 我已经更新了我的答案
标签: java android regex replace