【发布时间】:2017-12-16 23:22:27
【问题描述】:
我尝试用 GoLang 替换一段 JavaScript 代码。逻辑要求我将以下字符串拆分为“;”仅当后跟“I”或“D”时:
I.E.viewability:-2;D.ua:Mozilla/5.0 (Linux; Android 7.0; SM-G920W8 Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.125 Mobile Safari/537.36;D.G.city:Burnaby;D.G.zip:V5C;D.G.region:BC;D.G.E.country_code2:CA;
在 JavaScript 中我使用:
/;(?=[ID]|$)/
我的理解是 GoLang 使用这个正则表达式库
https://github.com/google/re2/wiki/Syntax
清楚地表明上述语法(称为before text matching re)不受支持。
在 GoLang 中实现相同结果的正确方法是什么?
【问题讨论】:
-
您可以尝试使用
regexp.FindAllString。链接 => golang.org/pkg/regexp/#Regexp.FindAllString。这样,您可以找到出现正则表达式匹配的索引,并根据该索引拆分您的字符串。不会像 strings.Split() 那样简单直接:-)
标签: javascript regex go