通过Go中的regex在字符串中查找字符串

时间:2017-03-11 17:03:40

标签: regex go

我正在尝试编写一个向我返回字符串的正则表达式

我有一个完整的字符串:

@badges=moderator/1,premium/1;color=#00FF80;display-name=gempir;emotes=;id=d0358df2-f0a1-4600-910e-515ec52b1baa;mod=1;room-id=99659894;sent-ts=1489250823035;subscriber=0;tmi-sent-ts=1489250823211;turbo=0;user-id=77829817;user-type=mod :gempir!gempir@gempir.tmi.twitch.tv PRIVMSG #gempbot :!status

以及如何找到命令" PRIVMSG"因为有类似的完整字符串具有不同的命令。像这样:

@ban-duration=20;ban-reason=Banned\slink;room-id=11148817;target-user-id=78424343 :tmi.twitch.tv CLEARCHAT

如果您感兴趣,这些是带有ircv3标签的twitch irc消息

现在我有这个正则表达式:

^@(.*)\s:(.*?)tmi.twitch.tv\s

如何在Go中使用正则表达式或类似的正则表达式找到我正在寻找的字符串?

我想避免一次又一次地分裂,因为它看起来有点不合理且难以阅读。我认为正则表达式可以解决我所有的问题。

2 个答案:

答案 0 :(得分:0)

以下正则表达式应该这样做......

(?<=twitch.tv\s)\w+(?=\s#)

参见 regex demo

答案 1 :(得分:0)

只是不要固定在网址上(可以改变一段时间)我更喜欢这种:

([A-Z]+)(\s#.+)?$