我正在尝试为分隔符“(“, “)”, “,”
编写正则表达式。我试着写一个正则表达式,但它对于定界符来说不正确。
假设输入为mult(3,add(2,subs(4,3)))
。我的deimeter正则表达式的输出是:3,add(2,subs(4,3
。
public class Practice {
private static final String DELIMETER = "\\((.*?)\\)";
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
String arg = reader.next();
Pattern p = Pattern.compile(DELIMETER);
Matcher m = p.matcher(arg);
while (m.find()) {
System.out.println(m.group(1));
}
}
}
在分隔符之间获取字符串的正确正则表达式是什么?
答案 0 :(得分:1)
通常,您不能使用正则表达式匹配任何可以递归嵌套的内容。但是,如果您从正则表达式中删除了?
,它将从第一个(
到最后一个)
匹配,这可能已经足够了,具体取决于您希望输入看起来的内容等。