我需要解析以下行:
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))”。 我究竟做错了什么。什么是正确的正则表达式?
答案 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+))*\\)\\))";
我删除了一些在正则表达式中分组不需要的括号。如果你需要它们来捕获表达式的一部分,你将不得不重新添加它们。