2017-08-07 65 views
1

我需要提取值11,12和1,即之后的值=
我尝试做以下我有一个字符串((关系= 11)和(关系= 12)和(关系= 1))

Matcher m = Pattern.compile("\\((.*?)\\)").matcher(s); 
while (m.find()) { 
    list.add(m.group(1)); 
    System.out.println(m.group(1)); 
} 

然后我会分裂使用=

有一些更好的方式来做到这一点?

+0

'(“(\\\ d + )“)'应该可以工作 – Jens

+0

@Jens反斜杠就足够了。 – Maroun

+0

@MarounMaroun好吧,我不确定。这就是为什么它是一个评论而不是答案:) – Jens

回答

3

可以使用这个表达式=(\d+)regex demo),则=这样后匹配一个或多个位,其中:

String str = "((Relationship=11) AND (Relationship=12) AND (Relationship=1))"; 
String regex = "=(\\d+)"; 
Pattern pattern = Pattern.compile(regex); 
Matcher matcher = pattern.matcher(str); 

while (matcher.find()) {             
    System.out.println(matcher.group(1)); 
} 

输出

11 
12 
1