0

我需要解析以下行:

Action(X,X,Cash(50))Action(Y,Y,Material(30,Car,2))Action(I,I,Cash(50))

输出应如下所示:

Action(X,X,Cash(50))
Action(Y,Y,Material(30,Car,2))
Action(I,I,Cash(50))

我使用的正则表达式是:

String tokenRegex = "(Action+\\(([a-zA-Z]+|\\,|([a-zA-Z]+\\(\\d*|[a-zA-Z]+|\\,)\\))+\\))";

它无法解析“Action(Y,Y,Material(30,Car,2))”,但适用于“Action(X,X,Cash(50))”。我究竟做错了什么。什么是正确的正则表达式?

4

2 回答 2

1

而不是使用正则表达式只是做一些事情的效果

string.replace(")A", ")\nA");
于 2013-04-05T00:36:52.167 回答
1

我认为这样做:

String tokenRegex = "(Action\\([a-zA-Z]+,[a-zA-Z]+,[a-zA-Z]+\\(\\d+(,([a-zA-Z]+|\\d+))*\\)\\))";

我删除了一些在正则表达式中分组不需要的括号。如果您需要它们来捕获表达式的一部分,则必须将它们添加回来。

于 2013-04-05T00:50:20.050 回答