How to extract a substring between two tags using RegEx in Go

1 Answer

0 votes
package main

import (
    "fmt"
    "regexp"
)

// Function to extract content between specified tags
func extractContentBetweenTags(str string, tagName string) string {
    // Build a regex pattern using the specified tag name
    pattern := fmt.Sprintf("<%s>(.*?)</%s>", tagName, tagName)

    // Compile the regex pattern
    regex := regexp.MustCompile(pattern)

    // Find the first match
    match := regex.FindStringSubmatch(str)

    if len(match) > 1 {
        // Return the content inside the tags
        return match[1]
    }

    // Return an empty string if no match is found
    return ""
}

func main() {
    str := "abcd <tag>efg hijk lmnop</tag> qrst uvwxyz"

    // Call the function to extract the substring
    content := extractContentBetweenTags(str, "tag")

    if content != "" {
        fmt.Printf("Extracted content: %s\n", content)
    } else {
        fmt.Println("No matching tags found.")
    }
}



/*
run:

Extracted content: efg hijk lmnop

*/

 



answered Apr 3 by avibootz
...