2017-06-14 106 views
0

我试图找到可以让我提取,看起来像这样的字符串信息的模式索引收录列表:正则表达式来提取

(10, [(1, 4482729), (2, 4395402), (10, 4390557), (1, 4520185)]) 

它是在开始一个固定的数Z (例如10),然后是形式为(X,Y)的N对,其中N可以是任何数字。

编辑:

我试过到目前为止:

Pattern.compile("[(]\\d+[,]\\s+\\[(*)\\][)]") 

我需要提取从所有这些对的X和Y和Z.

+1

到目前为止还有什么问题加上你的努力? – Jan

+0

你需要发布你迄今为止已经尝试过的不能工作的东西,以便人们可以帮助你。 – ManoDestra

+0

没有必要downvote这么快,评论是足够的...我仍然试图学习正则表达式 – Alessandro

回答

1

尝试这种模式:

String pattern = "\\(\\d+, \\[[\\(\\d+, \\d+\\), ]*\\(\\d+, \\d+\\)\\]\\)"; 

我测试它是这样的:

String pattern = "\\(\\d+, \\[[\\(\\d+, \\d+\\), ]*\\(\\d+, \\d+\\)\\]\\)"; 
String test = "(10, [(1, 4482729), (2, 4395402), (10, 4390557), (1, 4520185)])"; 

Pattern p = Pattern.compile(pattern); 
Matcher m = p.matcher(test); 
boolean b = m.matches(); 
System.out.println(b); 

它工作得很好。