文章目录
- 背景
- 问题
- 原因分析
- 如何解决?
- chatgpt 3.5
- GP4的表现
- 未完待续
背景
业务上的一个字段在解析时为了避免脏数据导致后续ETL的异常,决定从源头将该字段严格按照设计的规则去匹配。该字段的上传是设备端传上来的文件中的一个字段。
正向?反向?
问题
业务中有这么一个正则表达式

上线后大概四个小时候用户反馈出现问题。
也就是说并不是所有的id都匹配不到,是偶发的。所以比较隐蔽。发现问题之后立即进行了退版操作。
正则如下
大家可以在这里测试测试。
regex101 测试地址
有几个id匹配不到,可实际上应该匹配到。
原因分析
这个正则匹配到这一步为啥会从头开始匹配?

使用regex101 debug mode 时,发现在匹配最后一个真这个块时发生了 pattern backtrack indicator。
没错是发生了回溯。回溯之后就匹配不到了。
为什么会发生回溯呢?
如何解决?
chatgpt 3.5

GP4的表现





![[golang 微服务] 8.go-micro的负载均衡操作,go Web框(Gin,Beego)调用go-micro微服务](https://img-blog.csdnimg.cn/img_convert/86697ee71551beb275b281de1baa1937.png)














![[ISO26262]汽车功能安全第二部分:功能安全管理](https://img-blog.csdnimg.cn/fc434d897c4b41968d6476780e08a6e1.png)