我有一个字符串,格式如下
[dgdds,dfse][fsefsf,sefs][fsfs,fsef]
我将如何使用Regex快速解析它以返回一个ArrayList,每个值都包含这样的一个“条目”?
ArrayList <String>:
0(String): [dgdds,dfse]
1(String): [fsefsf,sefs]
2(String): [fsfs,fsef]真的坚持住了,任何帮助都是很好的。
发布于 2013-11-06 22:18:40
您可以使用简单的\[.*?\] regex,这意味着:匹配以[开头的字符串,后面是零或多个字符(但尽可能短,而不是太快,这就是为什么.*?中的? ),以]结尾。
这很有效,可以在艾德龙上进行测试。
List<String> result = new ArrayList<String>();
String input = "[dgdds,dfse][fsefsf,sefs][fsfs,fsef]";
Pattern pattern = Pattern.compile("\\[.*?\\]");
Matcher matcher = pattern.matcher(input);
while (matcher.find())
{
result.add(matcher.group());
}
System.out.println(result);输出:
[[dgdds,dfse], [fsefsf,sefs], [fsfs,fsef]]发布于 2013-11-06 22:15:43
怎么样
String myData = "[dgdds,dfse][fsefsf,sefs][fsfs,fsef]";
List<String> list = new ArrayList<>(Arrays.asList(myData
.split("(?<=\\])")));
for (String s : list)
System.out.println(s);输出:
[dgdds,dfse]
[fsefsf,sefs]
[fsfs,fsef]此正则表达式将使用向后看机制在]之后的每个位置拆分。
发布于 2013-11-06 22:18:16
您应该试试这个regex:
模式=Pattern.compile(“\w*,\w*\");
https://stackoverflow.com/questions/19823886
复制相似问题