Java Regexs:意外的char:'('

Cal*_*ers 0 java regex literals

我正在使用处理1.0.6,它运行在java 1.6上.我有以下代码:

Pattern pattern = Pattern.compile("func\((.*),(\-?[0-9\.]*),(\-?[0-9\.]*),(\-?[0-9\.]*)\)");
Run Code Online (Sandbox Code Playgroud)

但它给出了错误:

unexpected char: '('
Run Code Online (Sandbox Code Playgroud)

并突出显示我粘贴在上面的线条.如果我将违规行为更改\(为另一个角色#,那就会抱怨这\-句话unexpected char: '-'.我应该能够在正则表达式引擎中使用文字,它可以在C#中使用!

Gum*_*mbo 5

你也需要逃避反斜杠:

"func\\((.*),(-?[0-9.]*),(-?[0-9.]*),(-?[0-9.]*)\\)"
Run Code Online (Sandbox Code Playgroud)

该字符串表达式将被评估为:

func\((.*),(-?[0-9.]*),(-?[0-9.]*),(-?[0-9.]*)\)
Run Code Online (Sandbox Code Playgroud)

这就是你想要的.