0

我需要以正则表达式格式指定字符串 find,以便可以找到 head 标签,无论其格式是<html >or<html>还是< html>。如何指定正则表达式格式的查找字符串?

String source = "<html >The quick brown fox jumps over the brown lazy dog.</html >";
String find = "<html>";
String replace = "";        
Pattern pattern = Pattern.compile(find);        
Matcher matcher = pattern.matcher(source);        
String output = matcher.replaceAll(replace); 
System.out.println("Source = " + source);
System.out.println("Output = " + output);
4

4 回答 4

3

尽管您可以通过做来解决您的问题<\\s*html\\s*>,但您不应该使用正则表达式处理 HTML。强制性链接

表示 0个\\s*或多个空格。

于 2012-09-07T12:08:00.443 回答
1

不要尝试使用正则表达式解析 HTML!尝试阅读有关XPath. 非常有帮助。虽然XPath默认情况下会尝试验证您的文档,但您可以尝试HtmlCleaner使其有效。

于 2012-09-07T12:11:22.057 回答
0

这个例子可能对你有帮助。

String source = "<html >The quick brown fox jumps over the brown lazy dog.</html >";

        String find = "\\<.*?>";
        String replace = "";        
        Pattern pattern = Pattern.compile(find);        
        Matcher matcher = pattern.matcher(source);        
        String output = matcher.replaceAll(replace); 
        System.out.println("Source = " + source);
        System.out.println("Output = " + output);
于 2012-09-07T12:14:50.523 回答
0

要在标签中提取文本,请使用类似

String source = "<html >The quick brown fox jumps over the brown lazy dog.</html >";
System.out.println( source.replaceAll( "^<\\s*html\\s*>(.*)<\\s*\\/html\\s*>$", "$1" ) );
// output is:
// The quick brown fox jumps over the brown lazy dog.

但尽量避免通过正则表达式解析 html。阅读本主题

于 2012-09-07T12:09:36.843 回答