port & company|design brands > montana griz|designs" />
登录
首页 >  Golang >  Go问答

使用 RE2 正则表达式在两个字符串之间匹配子字符串的方法

来源:stackoverflow

时间:2024-03-03 18:03:25 309浏览 收藏

Golang不知道大家是否熟悉?今天我将给大家介绍《使用 RE2 正则表达式在两个字符串之间匹配子字符串的方法》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!

问题内容

我需要从以下字符串中提取“design brands > ”和第一个管道 (|) 字符之间的子字符串:

"t-shirts|brands > port & company|design brands > montana griz|designs > teamlb griz > mtg31|t-shirts > teamlb|t-shirts > montana griz"

这是在 google sheets 函数中,所以我必须使用 go 的 re2 语法

我希望下面的表达式能够工作

Design Brands > (.*)\|

但是,表达式匹配字符串中直到最后一个管道的所有内容 “montana griz|设计 > teamlb griz > mtg31|t 恤 > teamlb” 而不是字符串中第一次出现管道之前的所有内容。我似乎无法弄清楚如何在捕获组中隔离“montana griz”。


解决方案


要么让点变得懒惰:

design brands > (.*?)\|

或者,如果 re2 不支持惰性点,则使用此版本:

design brands > ([^|]*)\|

Demo

第二个模式表示:

Design Brands >    match "Design Brands > "
([^|]*)            then match and capture any character which is NOT pipe
\|                 finally match the first pipe

([^|]*) 是一个匹配所有内容的技巧,直到(但包括)出现的第一个管道。

本篇关于《使用 RE2 正则表达式在两个字符串之间匹配子字符串的方法》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>