假设我有一个字符串

Abc=cde&efg

这个公式给了我三个组

(.*=)(.*)(&.*)

但如果输入字符串是动态的,并且&efg可能存在或不存在怎么办?
当它不是上面的配方时,我什么都不会给. 我需要在Golang中使用这个正则表达式,我希望使用一个正则表达式(如果可能的话),而不使用&拆分字符串.

推荐答案

您可以使用

^(.*=)(.*?)(&.*)?$

请看regex demo.

Details:

  • ^-字符串的开始
  • (.*=)-组1:除换行符之外的任何零个或多个字符,尽可能多,然后是=个字符
  • (.*?)-组2:除换行符之外的任何零个或多个字符应尽可能少
  • (&.*)?-第3组(可选):A &,然后是除换行符之外的任何零个或多个字符
  • $-字符串结束.

Go相关问答推荐

使用GO从RDPMC获得价值

Websocket服务器实现与x/net库trowing 403

重新赋值变量时未清除动态类型-这是错误吗?

Go:如何在不加载正文的情况下创建 http 代理通行证

如何从Go项目连接Microsoft Access数据库?

使用 Go Colly 抓取所有可能的标签并将它们放入一个变量中

如何在切片增长时自动将切片的新元素添加到函数参数

如何模仿联合类型

为超时的单元测试创​​建 deadlineExceededError:true

不能在 *gorm.db 而不是 gorm.db 上使用 WithContext(ctx) 方法

Golang - 客户 Unmarshaler/Marshaler 在指针上具有 nil/null 值

Golang Getrlimit 返回与 ulimit 不同的值

在 GORM 中,如何在特定时区配置 autoCreateTime 和 autoUpdateTime?

Golang prometheus 显示自定义指标

如何通过组合来自不同包的接口来创建接口?

具有近似约束的函数值导致的实例化失败

每 N 秒运行一次函数,上下文超时

为什么 go.mod 中的所有依赖都是间接的?

递归数据 struct 解组在 Go Lang Protobuf 中给出错误无法解析无效的线格式数据

如何使用 httputil.ReverseProxy 设置 X-Forwarded-For