在Go regexp中转义括号

wat*_*zon 1 regex go

我想在Go中的字符串上运行以下正则表达式

\(([0-9]+),([0-9.]+),(?:$([0-9]+))\)

但我一直在收到错误 unknown escape sequence: (

我正在运行的字符串是 (1,53.38,$45) (2,88.62,$98) (3,78.48,$3) (4,72.30,$76) (5,30.18,$9) (6,46.34,$48)

所以我的问题是,你如何逃避Go的正则表达式中的括号?

Jim*_*imB 6

你需要转义反斜杠,因为\(它不是一个有效的excape序列.

"\\(([0-9]+),([0-9.]+),(?:$([0-9]+))\\)"
Run Code Online (Sandbox Code Playgroud)

更常见的是,你可以在不转义的情况下使用反引号来表示字符串文字:

`\(([0-9]+),([0-9.]+),(?:$([0-9]+))\)`
Run Code Online (Sandbox Code Playgroud)