我必须在哪个位置解析? (Java,正则表达式)

On which position do I have to parse? (Java, RegEx)

我在 JAVA 中使用 RegEx 时遇到问题。

我有这个字符串:

String str = FOOD(ID:8,FRUIT[(NAME:v,CAL:2),(NAME:b,CAL:5)])

我写了这个 RegEx 来检查字符串是否匹配它。 (regexr.com 表示没问题):

FOOD\(ID:\d,FRUIT\[\(NAME:[a-zA-Z],CAL:\d\)(,\(NAME:[a-zA-Z],CAL:\d\))*\]\)

但是当我执行以下操作时它不起作用:

String patternTo = "FOOD\(ID:\d,FRUIT\[\(NAME:[a-zA-Z],CAL:\d\)(,\(NAME:[a-zA-Z],CAL:\d\))*\]\)"; //Error at this point
Pattern lP = Pattern.compile(patternTo);
return (lP.matcher(str).matches());

我知道我必须用 \ 解析它。但我不知道在哪个位置。 如果有人给我提示来解决这个问题,我将非常感激。

每个反斜杠字符需要用另一个反斜杠转义:

String patternTo = "FOOD\(ID:\d,FRUIT\[\(NAME:[a-zA-Z],CAL:\d\)(,\(NAME:[a-zA-Z],CAL:\d\))*\]\)";