Lookahead 和 Lookbehind regex

所以我有这个正则表达式:(?:\/p\/|$)(?:[^\/]*)(?<=-)(.*)(?=\/)

我希望它能从宜家链接中拉出ID,但它似乎不适用于Go。任何人都可以帮我吗?还是有工具可以转换它?

我让它与所有其他口味一起工作,但不是Go。

https://regex101.com/r/74RITp/4< - 这里举例说明


慕桂英546537
浏览 97回答 1
1回答

米琪卡哇伊

您可以使用以下命令完全删除外观并依靠捕获机制:/p/[^/]*-([^/]*)/请参阅正则表达式演示。请注意,前导和尾随是字符串模式的一部分。详细信息://p/- 一个字符串/p/[^/]*- 零个或多个字符,而不是/-- 一个连字符([^/]*)- 第 1 组:除//- 一个字符。/请参阅&nbsp;Golang 演示:package mainimport (&nbsp; &nbsp; "fmt"&nbsp; &nbsp; "regexp")func main() {&nbsp; &nbsp; s := `https://www.ikea.com/de/de/p/symfonisk-tischleuchte-mit-wifi-speaker-weiss-30435157/?tduid=d8b332c221610a36288c647f8959959f&utm_medium=affiliate&utm_name=generic&utm_term=conversion&utm_content=deeplink&utm_source=SmartApfel`&nbsp; &nbsp; regex := regexp.MustCompile(`/p/[^/]*-([^/]*)/`)&nbsp; &nbsp; fmt.Printf("%#v\n", regex.FindStringSubmatch(s)[1])}输出:"30435157"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go