我正在尝试编写一个可以提取命令的正则表达式,这是到目前为止我使用否定的lookbehind断言所得到的:
\b(?<![@#\/])\w.*
所以输入:
/msg @nickname #channel foo bar baz
/foo #channel @nickname foo bar baz
foo bar baz
foo bar baz每次都被提取。请参阅工作示例 https://regex101.com/r/lF9aG7/3
然而,在 Go 中这不会编译http://play.golang.org/p/gkkVZgScS_
它抛出:
panic: regexp: Compile(`\b(?<![@#\/])\w.*`): error parsing regexp: invalid or unsupported Perl syntax: `(?<`
我做了一些研究并意识到语言中不支持负向后视来保证 O(n) 时间。
我怎样才能重写这个正则表达式,让它在没有负面回顾的情况下做同样的事情?
幕布斯6054654
慕的地10843
相关分类