代码之家  ›  专栏  ›  技术社区  ›  Nathan H

Java字符串处理HTML标签

  •  0
  • Nathan H  · 技术社区  · 16 年前

    我有一个带有一些文本和HTML的Java字符串:

    <title>test title</title>
    blabla bla more text
    

    我想实现的是双重目标:

    1)检索 <title></title> 并将其保存在单独的字符串中。

    2)取下原串的那部分: <title>test title</title>

    所以最终结果是

    原始字符串:

    <标题>测试标题</title>
    bla bla bla更多文本
    

    新闻字符串:

    blabla bla more text
    

    页面标题: test title

    我怎样才能做到这一点?正则表达式? 我真的抓不住它…

    3 回复  |  直到 16 年前
        2
  •  1
  •   dogbane    16 年前

        String s = "<title>test title</title>";
        Pattern p = Pattern.compile("<title>(.*?)</title>");
        Matcher m = p.matcher(s);
        while(m.find()){
            System.out.println(m.group(1));
        }
    
        3
  •  0
  •   Community Mohan Dere    9 年前

    It is inadvisable to parse XML/HTML with regular expressions.

    package org.apache.people.mclark.examples.regex;
    import java.util.regex.*;
    public class Regex1 {
        public static void main(String[] args) {
            final String subjectString = "<title>test title</title>\n" +
              "blabla bla more text"; 
            Pattern regex = Pattern.compile("<title>(.*?)</title>(.*)",
                    Pattern.DOTALL);
            Matcher regexMatcher = regex.matcher(subjectString);
            if (regexMatcher.find()) {
                String pageTitle = regexMatcher.group(1);
                String leftOvers = regexMatcher.group(2);
                System.out.println("pageTitle[" + pageTitle + "]");
                System.out.println("leftOvers[" + leftOvers + "]");
            } else {
                System.out.println("no match");
            }
        }
    }