正则表达式仅以html格式

时间:2017-01-09 14:11:42

标签: html regex

我一直在学习正则表达式,因此我一直在研究Hackerrank问题。我遇到了一个问题,我被要求删除html格式,只保留锚标记的引用(href部分的值)内部的任何内容,以及标记内的文本,然后用逗号分隔。

我想出了以下代码来提取这些信息:

public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        s.nextLine();

        for (int i = 0; i < n; i++) {
            String line = s.nextLine();

            Pattern p = Pattern.compile("(.*)<a href=\"([^\"]+)\"([^<>]*)>(<\\w+>)*([^<>]+)</a>(</\\w+>)*");
            Matcher m = p.matcher(line);
            while (m.find()) {
                System.out.println(m.group(2).trim() + "," + m.group(5).trim());
            }
        }
}

此代码在出现<p><a href="folder/page" id="link">text</a></p>通过和输出folder/page,text

等案例时

但是如果输入有多个<a>标签,它只会抓取它的最后一次出现并输出,而不是输出该单个输入的所有可能匹配。为什么会这样?如果您认为我可以通过一些提示自己回答,请不要完全回答我的问题。感谢您提前给出任何答案

0 个答案:

没有答案