JAVA中正则转义有错误

下面这段代码怎么在JAVA里就报错。 哪里转义出错了?

string res = "^T\d+(\-\>T\d+){0,1}(\,T\d+(\-\>T\d+))*$";

把所有的\修改为\\
因为java里面也需要转义

多了一个逗号
^T\d+(->T\d+){0,1}(\,T\d+(->T\d+))*$
改为
^T\d+(->T\d+){0,1}(\T\d+(->T\d+))*$