我需要提取值11,12和1,即紧接=之后的值。
我正在尝试执行以下操作

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


然后我将使用=进行拆分

有更好的方法吗?

最佳答案

您可以使用此正则表达式=(\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

关于java - 我有一个字符串((Relationship = 11)AND(Relationship = 12)AND(Relationship = 1)),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45542517/

10-12 18:26