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

1 Answer

0 votes
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Program {
    public static void main(String[] args) {
        String str = "abcd <tag>efg hijk lmnop</tag> qrst uvwxyz";

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

        if (content != null && !content.isEmpty()) {
            System.out.println("Extracted content: " + content);
        } else {
            System.out.println("No matching tags found.");
        }
    }

    // Function to extract content between specified tags
    public static String extractContentBetweenTags(String str, String tagName) {
        // Build a regex pattern using the specified tag name
        String pattern = "<" + tagName + ">(.*?)</" + tagName + ">";
        
        // Compile the regex pattern
        Pattern regex = Pattern.compile(pattern);
        Matcher matcher = regex.matcher(str);

        if (matcher.find()) {
            // Return the content inside the tags
            return matcher.group(1);
        }

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

 
 
/*
run:
 
Extracted content: efg hijk lmnop
 
*/

 



answered Apr 2 by avibootz
...