如何形成一个将解析以下内容的正则表达式?

时间:2013-04-05 00:35:09

标签: regex

我需要解析以下行:

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))”。 我究竟做错了什么。什么是正确的正则表达式?

2 个答案:

答案 0 :(得分:1)

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

string.replace(")A", ")\nA");

答案 1 :(得分:1)

我认为这样做:

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

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