【发布时间】:2012-01-25 12:46:43
【问题描述】:
我有一个程序以逻辑表达式的形式接受用户输入(例如: (p=>(r||q)) )并将字符串划分为由括号定义的子字符串。我正在使用模式和匹配器。
因此,例如用户输入:
((p||q)=>r)。
我想得到 2 个子字符串,它们是:
p||q
和
(p||q)=>r.
但是我只得到这个:
(p||q
这是我正在使用的代码
Scanner scanner = new Scanner(System.in);
System.out.println("Enter formula: ");
String formula = scanner.next();
Pattern pattern = Pattern.compile("\\((.*?)\\)");
Matcher matcher = pattern.matcher(formula);
while(matcher.find())
{
String s = matcher.group(1);
System.out.println(s);
}
所以我需要一种方法让程序找到该字符串中的所有子字符串。
【问题讨论】:
-
正则表达式不太适合这个任务。我建议您手动进行解析或使用解析库。