https://website-name.some-domain.some-sub-domain.com/resourceId当给定(类型 1)或(类型 2)形式的字符串时https://website-name.some-sub-domain.com/resourceId?randomContent,我只需要提取两个子字符串。我需要website-name一个字符串和resourceId另一字符串。
我使用以下代码提取了网站名称:
s := "https://website-name.some-domain.some-sub-domain.com/resourceId?randomContent"
w := regexp.MustCompile("https://(.*?)\\.")
website := w.FindStringSubmatch(s)
fmt.Println(website[1])
我有其他正则表达式来获取resourceId
s := "https://website-name.some-domain.some-sub-domain.com/resourceId?randomContent"
r := regexp.MustCompile("com/(.*?)\\?")
resource := r.FindStringSubmatch(s)
fmt.Println(resource[1])
这适用于任何以?或结尾的字符串?randomContent。但我的字符串没有尾随?,我无法处理这种情况(类型 1)。
我试图"(com/(.*?)\\?)|(com/(.*?).*)"得到resourceId但没有用。
我无法找到一种优雅的方法来提取这两个子字符串。
注意:therandomContent是任意长的子串,the 也是如此resourceId。但里面resourceId不会有。?遇到a ?,就可以说resourceId结束了。
另外,website-name可以不同,但模式是相同的 - 任意子域和 a.com将出现在字符串中。
这是我尝试过的: https: //play.golang.org/p/MGQIT5XRuuh
慕容3067478
月关宝盒
扬帆大鱼
相关分类