【问题标题】:how to parse only HTML TAG with regex in java without jsoup [closed]如何在没有jsoup的情况下在java中使用正则表达式仅解析HTML TAG [关闭]
【发布时间】:2019-07-01 07:25:10
【问题描述】:

大家好,我只需要解析带有正则表达式的 HTML 标记,并留下非 html 标记而没有 jsoup

例如

<h1> i love india <\h1>
<xyz> name <\xyz>
<html> hey i won! <\html>
<syd> like it <\syd>
<<<<<<
<br> love you <br>  
>>>>>>>>

预期输出是:

i love india
none
hey i won!
none
none
love you
none

我尝试了很多,但没有得到任何人帮助我解决这个问题的确切答案。提前致谢。

【问题讨论】:

    标签: java html parsing html-parsing


    【解决方案1】:

    尝试以下方法:

            String[] array = { "<h1> i love india <\h1>",
                               "<xyz> name <\xyz>",
                               "<html> hey i won! <\html>",
                               "<syd> like i`enter code here`t <\syd>"
                            };
        Pattern pattern = Pattern.compile(">((.[^><]+))<");
        for (String str : array ) {
            Matcher m = pattern.matcher(str);
            if(m.find()) 
              System.out.println(m.group(1));
            else
              System.out.println("none");
        }
    

    【讨论】:

    • thanks moti...您能解释一下 m.group 将如何工作...我对此感到困惑...例如:我有一个字符串,例如 String="

      i like我自己 如果我喜欢 m.group() 答案是什么以及 m.group(1) 和 m.group(2)

    • 你能解释一下正则表达式是如何工作的......它是如何只知道html标签的
    • 如果您查看模式:(">((.[^> - 第一组是字符串的任何部分以 > 开头并以 > 结尾 第二组查看内括号,其中收集每个字符(点),除非它是 >
    【解决方案2】:

    使用正则表达式删除所有标签:

    s.replaceAll("<[^>]*>", "");
    

    【讨论】:

    • 感谢您的评论,它会删除所有标签,但我只想删除 html 标签...对于非 html 标签,它将不显示任何标签。
    • 然后你需要指定所有可能的 html 标签并为每个案例做正确的事情
    • 有没有其他办法.... jaudo
    猜你喜欢
    • 1970-01-01
    • 2010-12-19
    • 2017-07-10
    • 2021-04-30
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多