Products
GG网络技术分享 2025-03-18 16:15 1
I am trying to extract a JSON object from a custom payload.
My regex is working fine here: https://regex101.com/r/G5lBDC/1/
But Go returns no matches
re := regexp.MustCompile(`/payload:\\\\\"(.+?)\\\\\\\\\\\\\"\\\\\\\\/g`)rawResponse := \"version:1 response:<status:200 message:\\\"OK\\\" payload:\\\"{\\\\\\\"id\\\\\\\":\\\\\\\"ll2.card_4U45pAWUMCLhsu\\\\\\\",\\\\\\\"uid\\\\\\\":\\\\\\\"ll2.acc_727V8M6GjPJ9I26CqZHgxN\\\\\\\"}\\\\\\\"\\\\013\\\\022\\\\006ll2-cc\\\\032\\\\0019\\\" endorsement:<endorser:\\\"\\
\\\\007PASSKIT\\\\022\\\\224\\\\010>\"
rawJSON := re.FindStringSubmatch(rawResponse)
Go Playground https://play.golang.org/p/XRfbExNa9V
You can try this: ( Run here )
package mainimport (
\\\"regexp\\\"
\\\"fmt\\\"
)
func main() {
var re = regexp.MustCompile(`payload:\\\\\\\"(\\{[^\\}]+\\})`)
var str = `version:1 response:<status:200 message:\\\\\"OK\\\\\" payload:\\\\\"{\\\\\\\\\"id\\\\\\\\\":\\\\\\\\\"ll2.card_4U45pAWUMCLhsu\\\\\\\\\",\\\\\\\\\"uid\\\\\\\\\":\\\\\\\\\"ll2.acc_727V8M6GjPJ9I26CqZHgxN\\\\\\\\\"}\\\\\\\\\"\\\\013\\\\022\\\\006ll2-cc\\\\032\\\\0019\\\\\" endorsement:<endorser:\\\\\"\\
\\\\007PASSKIT\\\\022\\\\224\\\\010>`
rawJSON := re.FindStringSubmatch(str)
fmt.Println(rawJSON[1])
}
本文来源:https://github.com/ziishaned/learn-regex
作者:Zeeshan Ahmad
正则表达式是一组由字母和符号组成的特殊文本,它可以用来从文本中找出满足你想要的格式的句子。
一个正则表达式是一种从左到右匹配主体字符串的模式。 “Regular expression”这个词比较拗口,我们常使用缩写的术语“regex”或“regexp”。 正则表达式可以从一个基础字符串中根据一定的匹配模式替换文本中的字符串、验证表单、提取字符串等等。
想象你正在写一个应用,然后你想设定一个用户命名的规则,让用户名包含字符、数字、下划线和连字符,以及限制字符的个数,好让名字看起来没那么丑。 我们使用以下正则表达式来验证一个用户名:
以上的正则表达式可以接受 john_doe
、jo-hn_doe
、john12_as
。 但不匹配Jo
,因为它包含了大写的字母而且太短了。
正则表达式其实就是在执行搜索时的格式,它由一些字母和数字组合而成。 例如:一个正则表达式 the
,它表示一个规则:由字母t
开始,接着是h
,再接着是e
。
Demand feedback