在go语言中解析regexp时报错:invalid or unsupported Perl syntax的解决方式
在go语言中编译和运行程序时,有时会抛出一些奇怪的错误信息。
今天在测试Golang中的正则表达式时,就遇到了下面这个错误信息:
error parsing regexp: invalid or unsupported Perl syntax: (?!
显然,
这是因为Golang中不支持Perl语法和负数的lookahead。
Golang的正则表达式语法与PCRE的不同
(php和javascript使用的是PCRE)。
解决‘无效或不支持Perl语法’的方案
方式1
可以把你的正则表达式转换成非Perl语法风格。
方式2
安装
https://github.com/tuxychandru/golang-pkg-pcre/
方式3
如果你的要求不是太复杂,你也可以考虑Golang的unicode包。
ps:
有几个函数,如IsDigit, IsNumber和IsPunct,可能会有用。
相关文章