其他教程

其他教程

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 main

import (

\\\"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_doejo-hn_doejohn12_as。 但不匹配Jo,因为它包含了大写的字母而且太短了。

目录

目录

  • 1. 基本匹配
  • 2. 元字符
    • 2.1 点运算符 .
    • 2.2 字符集
      • 2.2.1 否定字符集

    • 2.3 重复次数
      • 2.3.1 * 号
      • 2.3.2 + 号
      • 2.3.3 ? 号
    • 2.4 {} 号
    • 2.5 (...) 特征标群
    • 2.6 | 或运算符
    • 2.7 转码特殊字符
    • 2.8 锚点
      • 2.8.1 ^ 号
      • 2.8.2 $ 号

  • 3. 简写字符集
  • 4. 零宽度断言(前后预查)
    • 4.1 ?=... 正先行断言
    • 4.2 ?!... 负先行断言
    • 4.3 ?<= ... 正后发断言
    • 4.4 ?<!... 负后发断言
  • 5. 标志
    • 5.1 忽略大小写(Case Insensitive)
    • 5.2 全局搜索(Global search)
    • 5.3 多行修饰符(Multiline)

  • 额外补充
  • 贡献
  • 许可证

1. 基本匹配

正则表达式其实就是在执行搜索时的格式,它由一些字母和数字组合而成。 例如:一个正则表达式 the,它表示一个规则:由字母t开始,接着是h,再接着是e

标签:

提交需求或反馈

Demand feedback