我想从"{
下面替换String
:
public static void main(String args[]){
String input="Subtitle,\"{\"key\": \"IsReprint\", \"value\":\"COPY\"}";
input=input.replaceAll("\"{", "{"));
System.out.println("String ::::"+input);
}
我收到了这个错误:
Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition near index 1
\"{
^
答案 0 :(得分:0)
您有两种方式:
首先你必须使用{
转义\\{
,因为replaceAll使用正则表达式,所以你必须逃避"
和{
:
input=input.replaceAll("\"\\{", "{");
如果您没有这个复杂的正则表达式,那么第二个是使用replace
:
input=input.replace("\"{", "{");
答案 1 :(得分:0)
replaceAll
以正则表达式作为参数。 {
在正则表达式中具有特殊含义,因此必须通过执行
{
input=input.replaceAll("\"\\{", "{");
或使用replace
,它不会将正则表达式作为参数。
input=input.replace("\"{", "{");
答案 2 :(得分:0)
你没有逃避" {"当你调用replaceAll时,字符正确。
你需要使用"两个斜线" \\在任何正则表达式(regExp)之前。
以下是一个例子:
public static void main(String args[]){
String input="Subtitle,\"{\"key\": \"IsReprint\", \"value\":\"COPY\"}";
System.out.println(input.replaceAll("\\{", "*"));
}
我的例子取代了" {"带*的字符:
"\\{", "*"
正在运行,您将获得输出:
Subtitle,"*"key": "IsReprint", "value":"COPY"}
输入:
String input="{{ }}";
您获得了输出:
** }}