Java 用双引号将字符串子串化的正则表达式

Java 用双引号将字符串子串化的正则表达式,java,regex,Java,Regex,这听起来可能是个直截了当的问题,但我对Java中的正则表达式还不熟悉。 我想要的是,我有一个像下面这样的字符串(它是一个完整的字符串) 我想要的是一个字符串数组,包含{name1,linkwhatevercom,name2,linkwhatevercom2} 我可以通过子串和循环以及那种无聊的方式来实现这一点。我知道split()方法支持正则表达式。 有人能帮我通过正则表达式实现这一点吗 任何帮助都将不胜感激。先谢谢你 如果要使用split(),可以执行以下操作: String input =

这听起来可能是个直截了当的问题,但我对Java中的正则表达式还不熟悉。 我想要的是,我有一个像下面这样的字符串(它是一个完整的字符串)

我想要的是一个字符串数组,包含
{name1,linkwhatevercom,name2,linkwhatevercom2}
我可以通过子串和循环以及那种无聊的方式来实现这一点。我知道
split()
方法支持正则表达式。 有人能帮我通过正则表达式实现这一点吗


任何帮助都将不胜感激。先谢谢你

如果要使用
split()
,可以执行以下操作:

String input = "[[\"name1\", \"link whaterevercom\"],[\"name2\", \"link whatevercom2\"]]";
String[] split = input.replaceAll("\\[|\\]|\"","").split(",\\s*");

如果要使用
split()
,可以执行以下操作:

String input = "[[\"name1\", \"link whaterevercom\"],[\"name2\", \"link whatevercom2\"]]";
String[] split = input.replaceAll("\\[|\\]|\"","").split(",\\s*");

您可以去掉括号,在“,”上拆分:


您可以去掉括号,在“,”上拆分:


如果要分隔替换括号,请使用纯文本
replace()
,不要转义
s=s.replace(“[”,”).replace(“]”,”)
,或者,如果要使用regex replace,请将它们组合起来:
s=s.replaceAll(“\\[\\\]”,“”)。我还将把
split()
列成一行。@Bohemian尝试:
s=s.replace(“[”,”);
你会得到:“java.util.regex.PatternSyntaxException:Unclosed character class near index…”但你是对的,这两个替换可以通过一个regex完成,我会更新我的答案-谢谢!你不会,因为
replace()
不使用regex!它使用纯文本。又错了!
replace()
替换所有出现的内容,就像
replaceAll()
一样。唯一的区别是搜索词不是regex。你不是第一个假设它的人,因为它的名称中没有
replace()
只替换一个匹配项。如果要分离替换括号,请使用纯文本
replace()
,不要转义
s=s.replace(“[”,”).replace(“]”,”);
,或者,如果要使用regex replace,请将它们组合起来:
s=s.replaceAll(“\[\\\\\”,”);
。我也会将
拆分()
所以它是一行。@Bohemian尝试:
s=s.replace(“[”,”);
你会得到:“java.util.regex.PatternSyntaxException:Unclosed character class near index…”但是你是对的,这两个替换可以通过一个regex完成,我会更新我的答案-谢谢!不,因为
replace()
不使用regex!它使用纯文本。又错了!
replace()
替换所有出现的内容,就像
replaceAll()
一样。唯一的区别是搜索词不是regex。你不是第一个假设的人,因为它的名称中没有“all”,所以
replace()
只替换一个出现的内容。
String s = "[[\"name1\", \"link whaterevercom\"], [\"name2\", \"link whatevercom2\"]]";
s = s.replaceAll("\\[|\\]","");
String[] arr = s.split(", ");
System.out.println(Arrays.toString(arr)); 
// prints: ["name1", "link whaterevercom", "name2", "link whatevercom2"]