“正则表达式中的多字节代码字符串太短”是什么意思?

what does `too short multibyte code string in regex` mean?

我正在创建一个 sublime 文本突出显示文件。但是,我遇到了一个我不完全理解的错误。我有以下正则表达式:

\x([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])

当我尝试加载 sublime text 中的文件时,出现错误:

Error in regex: too short multibyte code string in regex \x([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])

我尝试使用谷歌搜索来了解此错误的含义,我遇到的唯一相关的是以下链接:

0. github issue of the rubinius project

1. Whosebug thread

2. reddit thread

不幸的是,从这些链接中我只能确定该错误可能是由字符编码 [来自 1 和 2] 引起的。我现在怀疑“\x”可能是问题所在,因为该正则表达式中的其他一切都很好。如何转义该字符和所有其他类似字符,特别是,是否可以使用 golang 脚本来清理正则表达式以摆脱此类问题?

说明你忘记转义\x中的\了。
因此,它试图解析形式为 \x1234 的 Unicode 字符转义,但没有找到足够的数字。