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