I have this string "person","hobby","key"
and I want to remove " "
for all words except for key
so the output will be person,hobby,"key"
String str = "\"person\",\"hobby\",\"key\"";
System.out.println(str "\n");
str=str.replaceAll("/*regex*/","");
System.out.println(str); //person,hobby,"key"
CodePudding user response:
You may use the following pattern:
\"(?!key\")(. ?)\"
And replace with $1
Details:
\"
- Match a double quotation mark character.(?!key\")
- Negative Lookahead (not followed by the word "key" and another double quotation mark).(. ?)
- Match one or more characters (lazy) and capture them in group 1.\"
- Match another double quotation mark character.Substitution:
$1
- back reference to whatever was matched in group 1.
Here's a full example:
String str = "\"person\",\"hobby\",\"key\"";
String pattern = "\"(?!key\")(. ?)\"";
String result = str.replaceAll(pattern, "$1");
System.out.println(result); // person,hobby,"key"