Skip to content

Instantly share code, notes, and snippets.

@moltak
Created June 9, 2016 05:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save moltak/b8bad1ea94195f823e2324ce87de9c49 to your computer and use it in GitHub Desktop.
Save moltak/b8bad1ea94195f823e2324ce87de9c49 to your computer and use it in GitHub Desktop.
Http image tag extractor using regular expression
public class HttpImageTagExtractor {
public static List<String> extract(String text) {
//regular expression for extract image tag
Pattern pattern = Pattern.compile("<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>");
Matcher matcher = pattern.matcher(text);
List<String> lists = new ArrayList<>();
while(matcher.find()) {
lists.add(matcher.group(1));
}
return lists;
}
}
@moltak
Copy link
Author

moltak commented Jun 9, 2016

Junit test code

public class HttpImageTagExtractorTest {
    @Test
    public void shouldReturn0() {
        String text = "<div style=\"text-align:center;\"></div>";
        assertThat(HttpImageTagExtractor.extract(text).size(), is(0));
    }

    @Test
    public void shouldReturn1() {
        String text = "<div style=\"text-align:center;\"><img src=\"img1\"></div>";
        assertThat(HttpImageTagExtractor.extract(text).size(), is(1));
    }

    @Test
    public void shouldReturn2() {
        String text = "<div style=\"text-align:center;\"><img src=\"img2\"><br><img src=\"img1\"></div>";
        assertThat(HttpImageTagExtractor.extract(text).size(), is(2));
    }

    @Test
    public void shouldReturn10() {
        String text = "<div><img src=\"img1\"><img src=\"img2\"><img src=\"img3\"><img src=\"img4\"><img src=\"img5\"><img src=\"img6\"><img src=\"img7\"><img src=\"img8\"><img src=\"img9\"><img src=\"img10\"></div>";
        assertThat(HttpImageTagExtractor.extract(text).size(), is(10));
        assertThat(HttpImageTagExtractor.extract(text).get(9), is("img10"));
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment