有只小跳蛙

({{(media|skin) url=\\"(.*)\\"}})应该做的工作。它还将允许您在代码中将类型(媒体或皮肤)作为字符串获取,以便在需要时进一步使用。例如,这段代码:package mainimport "fmt"import "regexp"func main() {    re := regexp.MustCompile(`{{(media|skin) url=.*}}`)    stringMedia := "{{media url=\"wysiwyg/Out_story.png\"}}"    stringSkin := "{{skin url=\"wysiwyg/Out_story.png\"}}"    match := re.FindStringSubmatch(stringMedia)    if len(match) != 0 {        fmt.Printf("1. %s\n", match[1])    }    match = re.FindStringSubmatch(stringSkin)    if len(match) != 0 {        fmt.Printf("2. %s\n", match[1])    }}产出1. media2. skin然后,要用它包含的 URL 替换匹配项,您可以这样做(注意对 regexp 的调整以独立捕获完整匹配项和 url):package mainimport (    "fmt"    "regexp"    "strings")func main() {    re := regexp.MustCompile(`({{(media|skin) url=\\"(.*)\\"}})`)    stringMedia := "other stuff {{media url=\"wysiwyg/Out_story.png\"}} other stuff"    stringSkin := "other stuff {{skin url=\"wysiwyg/Out_story.png\"}} other stuff"    match := re.FindStringSubmatch(stringMedia)    if len(match) != 0 {        stringMedia = strings.Replace(stringMedia, match[1], fmt.Sprintf("https://img.abc.com/xyz/%s", match[3]), -1)        fmt.Println(stringMedia)    }    match = re.FindStringSubmatch(stringSkin)    if len(match) != 0 {        stringSkin = strings.Replace(stringSkin, match[1], fmt.Sprintf("https://img.abc.com/xyz/%s", match[3]), -1)        fmt.Println(stringSkin)    }}输出:other stuff https://img.abc.com/xyz/wysiwyg/Out_story.png other stuffother stuff https://img.abc.com/xyz/wysiwyg/Out_story.png other stuff您可以在regex-golang.appspot.com或playground上自行测试。
0
0