Go中的正则表达式字符串

Regex string in Go

我尝试使用字符串

"/{foo}/{bar:[a-zA-Z0-9=\-\/]+}.{vzz}"

围棋

当我使用 " 时,我看到错误:

unknown escape sequence

当我使用 ' 时,我得到:

cannot use '\u0000' (type rune) as type string in array or slice literal
unknown escape sequence

如何在我的 Go 应用程序中为 MUX 使用这个正则表达式?

当您指的是 \ 字面字符串中的字符时 - 它必须另外转义

"/{foo}/{bar:[a-zA-Z0-9=\-\/]+}.{vzz}"

否则你可以使用反引号代替双引号

`/{foo}/{bar:[a-zA-Z0-9=\-\/]+}.{vzz}`

根据 Golang 语言规范。

string_lit             = raw_string_lit | interpreted_string_lit .
raw_string_lit         = "`" { unicode_char | newline } "`" .
interpreted_string_lit = `"` { unicode_value | byte_value } `"` .

因此,如果您不想转义字符串文字中的任何内容,则需要一个原始字符串。

The value of a raw string literal is the string composed of the uninterpreted (implicitly UTF-8-encoded) characters between the quotes

Golang 不使用单引号 ' 作为字符串字面量指示符。双引号 " 的错误是由于编译器试图在正则表达式解释器之前将 \-\/ 作为字符串的一部分进行转义。