导航:首页 > 编程语言 > java过滤html标签

java过滤html标签

发布时间:2021-12-09 08:33:01

⑴ 用HTMLParser过滤掉html中所有标签,留下标题正文等内容,java

现在的网页,取title容易,要取到整齐的内容,就麻烦了。既然是爬虫,又不可能针对每个页面都写一遍。所以,你能解决这问题,是高智商、是值钱的。

<title>和</title>可以认为是标题,用字符串的处理方法即
<content>和</content>不是标准的HTML,不能认为之间的文字就是内容 。虽然<body>和</body>是,可之间的内容也太乱了。

⑵ java 如何去除html中的一个指定标签和指定标签里的内容

你好,可以用正则表达式。比如想要去除id为test的div标签及其内容:
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Person{
public static void main(String[] args) {
//正则表达式
Pattern p = Pattern.compile("<div.*id='test'.*</div>");
//测试内用的html代码
String str = "<html><body>aa<div id='test'>bb</div></body></html>";
Matcher m = p.matcher(str);
//去除标容签
String result = m.replaceAll("");

System.out.println(result);
}
}

⑶ java 移除html标签的属性

import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
*
* 使用正则表达式
*
*/
public class patternTest {
public static void main(String[] args) throws IOException {
Pattern patternClass = Pattern.compile(" (class|style)=\".*\"");
Reader buff = new FileReader("c:\\html.txt");
FileWriter write = new FileWriter("c:\\target.txt");
BufferedReader in = new BufferedReader(buff);
String s ;
while ((s=in.readLine())!=null) {
Matcher matcher = patternClass.matcher(s);
if(matcher.find()){
s = matcher.replaceAll("");
System.out.println(s);
}else{
System.out.println(s);
}
write.write(s+"\n");
}
write.close();
in.close();
}
}

html.txt 是你要处理的文本,

taget.txt是处理之后的文本,也直接在控制台打印出来了。

妹的。终于出来了。。

⑷ 在Java截取字符串的时候,如何过滤掉html标签

去除html标签
function
strip_tags($string,
$replace_with_space
=
true)
{
if
($replace_with_space)
{
return
preg_replace('!<[^>]*?>!',
'
',
$string);
}
else
{
return
strip_tags($string);
}
}
截取字符函数(匹配各种编码)
function
truncate($string,
$length
=
80,
$etc
=
'...',
$break_words
=
false,
$middle
=
false){
if
($length
==
0)
return
'';
if
(is_callable('mb_strlen'))
{
if
(mb_detect_encoding($string,
'utf-8,
iso-8859-1')
===
'utf-8')
{
//
$string
has
utf-8
encoding
if
(mb_strlen($string)
>
$length)
{
$length
-=
min($length,
mb_strlen($etc));
if
(!$break_words
&&
!$middle)
{
$string
=
preg_replace('/\s+?(\s+)?$/u',
'',
mb_substr($string,
0,
$length
+
1));
}
if
(!$middle)
{
return
mb_substr($string,
0,
$length)
.
$etc;
}
else
{
return
mb_substr($string,
0,
$length
/
2)
.
$etc
.
mb_substr($string,
-
$length
/
2);
}
}
else
{
return
$string;
}
}
}
//
$string
has
no
utf-8
encoding
if
(strlen($string)
>
$length)
{
$length
-=
min($length,
strlen($etc));
if
(!$break_words
&&
!$middle)
{
$string
=
preg_replace('/\s+?(\s+)?$/',
'',
substr($string,
0,
$length
+
1));
}
if
(!$middle)
{
return
substr($string,
0,
$length)
.
$etc;
}
else
{
return
substr($string,
0,
$length
/
2)
.
$etc
.
substr($string,
-
$length
/
2);
}
}
else
{
return
$string;
}
}
综合就是
$arc=strip_tags($arc);

⑸ java爬取知乎答案的时候,如何去除其中的HTML标签

可以通过正则表达式去除html标签

importjava.util.regex.Matcher;
importjava.util.regex.Pattern;

publicclassHtmlUtil{
privatestaticfinalStringregEx_script="<script[^>]*?>[\s\S]*?<\/script>";//定义script的正则表达式
privatestaticfinalStringregEx_style="<style[^>]*?>[\s\S]*?<\/style>";//定义style的正则表达式
privatestaticfinalStringregEx_html="<[^>]+>";//定义HTML标签的正则表达式
privatestaticfinalStringregEx_space="\s*| | | ";//定义空格回车换行符

/**
*@paramhtmlStr
*@return
*删除Html标签
*/
publicstaticStringdelHTMLTag(StringhtmlStr){
Patternp_script=Pattern.compile(regEx_script,Pattern.CASE_INSENSITIVE);
Matcherm_script=p_script.matcher(htmlStr);
htmlStr=m_script.replaceAll("");//过滤script标签

Patternp_style=Pattern.compile(regEx_style,Pattern.CASE_INSENSITIVE);
Matcherm_style=p_style.matcher(htmlStr);
htmlStr=m_style.replaceAll("");//过滤style标签

Patternp_html=Pattern.compile(regEx_html,Pattern.CASE_INSENSITIVE);
Matcherm_html=p_html.matcher(htmlStr);
htmlStr=m_html.replaceAll("");//过滤html标签

Patternp_space=Pattern.compile(regEx_space,Pattern.CASE_INSENSITIVE);
Matcherm_space=p_space.matcher(htmlStr);
htmlStr=m_space.replaceAll("");//过滤空格回车标签
returnhtmlStr.trim();//返回文本字符串
}

(StringhtmlStr){
htmlStr=delHTMLTag(htmlStr);
htmlStr=htmlStr.replaceAll("","");
htmlStr=htmlStr.substring(0,htmlStr.indexOf("。")+1);
returnhtmlStr;
}

publicstaticvoidmain(String[]args){
Stringstr="<divstyle='text-align:center;'>整治“四风”清弊除垢<br/><spanstyle='font-size:14px;'></span><spanstyle='font-size:18px;'>公司召开党的群众路线教育实践活动动员大会</span><br/></div>";
System.out.println(getTextFromHtml(str));
}
}

⑹ java 如何过滤html代码,只保留中文或英文及基本常用符号

很容易,首先建立一个字符串数组,也就是你需要过滤掉的html标签String[] filterArrays = new String[]{"<html>","</html>","<table>","</table>".....一系列有关html标签的东西}

当你得到一个html代码的字符串时你可以循环遍历上面的数组,然后调用String自带的方法replaceAll();
我给你简单的示范一下啊
String str = "dfgdgdfgdgd";//需要过滤的带有HTML标签的代码字符串
for(int i=0;i<filterArrays.length;i++){
if(str.indexOf(filterArrays[i])!=0){
str = str.replaceAll(filterArrays[i],"");//将html标签替换成了空格
}
}

这样就搞定了,主要是你需要在filterArrays中增加你需要过滤的字符串,当然还会有更好的办法,可以不用增加这样的数组,因为出现"<"必然会有">",或者"/>"这样的标签,但是这样做可能会将一些无关的也过滤掉了,总之两种方法都可以,第一种呢我都给你写了例子!祝你成功啊

⑺ java如何去掉字符串中的 html标签

1.去除单个HTML标记
String s="asdfasd<script>asdfsfd</script>1234";
System.out.println(s.replaceAll("<script.*?(?<=/script>)",""));
2.去除所有HTML标记
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class HTMLSpirit{ ITjob 远标教育
public static String delHTMLTag(String htmlStr){
String regEx_script="<script[^>]*?>[\\s\\S]*?<\\/script>"; //定义script的正则表达式
String regEx_style="<style[^>]*?>[\\s\\S]*?<\\/style>"; //定义style的正则表达式
String regEx_html="<[^>]+>"; //定义HTML标签的正则表达式

Pattern p_script=Pattern.compile(regEx_script,Pattern.CASE_INSENSITIVE);
Matcher m_script=p_script.matcher(htmlStr);
htmlStr=m_script.replaceAll(""); //过滤script标签

Pattern p_style=Pattern.compile(regEx_style,Pattern.CASE_INSENSITIVE);
Matcher m_style=p_style.matcher(htmlStr);
htmlStr=m_style.replaceAll(""); //过滤style标签

Pattern p_html=Pattern.compile(regEx_html,Pattern.CASE_INSENSITIVE);
Matcher m_html=p_html.matcher(htmlStr);
htmlStr=m_html.replaceAll(""); //过滤html标签

return htmlStr.trim(); //返回文本字符串
}
}

⑻ 【Java作业向】正则表达式过滤HTML标签

过滤HTML标签的Java正则表达式 (?s)<.*?/?.*?>

按照你的要求编写的用正则表达式过滤HTML标签的Java程序如下

public class AA {

public String tagFilter(String s){

String regex = "(?s)<.*?/?.*?>";

String ss=s.replaceAll(regex,"");

return ss;

}

public static void main(String[] args) {

String s="<div class="guid time online">测试 abc</div><span data-url="games/details/" class="guid done">你好13548</span><a href="games/details/" class="guid">15个字母Abc</a><i class="icon-guid"/>";

String result=new AA().tagFilter(s);

System.out.println(result);

}

}

⑼ java正则表达式过滤html p标签

用JavaScript方法如下,JAVA语言类似:
'你的HTML文本'.replace(/.+>(.+)<.+/,'$1')

⑽ java 利用jsoup 如何去除一段代码中的所有html标签,只留纯文本

使用正则表达式去匹配<>这种字符,然后删掉!

阅读全文

与java过滤html标签相关的资料

热点内容
86版本剑魂阴剑配装 浏览:119
苹果手机hone键怎么发光啊 浏览:275
公路测量什么地方需要特殊编程的 浏览:753
为什么vs不能用exe文件 浏览:166
win10怎么找组策略 浏览:263
孩子学吉码少儿编程有什么好处 浏览:806
w7没有自带截图工具 浏览:928
vba新建excel文件 浏览:172
少儿编程合作招生需要准备什么 浏览:334
word目录编辑域 浏览:660
linux查找特殊字符 浏览:451
linux安装solr 浏览:28
iphone系统文件越用越大 浏览:64
微信修改的文件在哪里设置密码 浏览:48
老版支付宝安卓下载手机版本 浏览:688
动画文件格式为 浏览:180
微信怎么改单 浏览:368
笔记本韩国网站怎么访问 浏览:574
sai透视教程 浏览:346
苹果6s64g的停产了吗 浏览:507

友情链接