本文实例讲述了java正则匹配HTML中a标签里的中文字符。分享给大家供大家参考,具体如下:

今天群里一位朋友问到了一个正则表达式的问题,有如下内容:
<a href='www.baidu.comds=id32434#comment'rewr>特432</a> 453543 <a guhll,,l>a1特123你好123吗?</a> <a href=id=32434#comment'ewrer>特2</a> <a>标签中的文字</a>
现在要匹配出内容包含中文但标签的属性中不包含comment的<a>标签中的汉字。
解决思路如下:
1、首先匹配出不包括comment的<a>标签;
2、在匹配结果中进行二次匹配出中文;
代码如下:
package com.mmq.regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @use 匹配HTML的<a>标签中的中文字符
* @ProjectName stuff
* @Author mumaoqiang
* @FullName com.mmq.regex.MatchChineseCharacters.java
* @JDK 1.6.0
* @Version 1.0
*/
public class MatchChineseCharacters {
/**
* 根据输入的内容,匹配出包含中文但不包含comment的<a>标签中的中文字符
* @param source 要匹配的内容
* @return <a>标签中的中文字符
*/
public static String matchChineseCharacters(String source) {
//匹配出包含中文但不包含comment的<a>标签
String reg = "<a((?!comment).)*?>([^<>]*?[\\u4e00-\\u9fa5]+[^<>]*?)+(?=</a>)";
Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(source);
StringBuilder character = new StringBuilder();
while(matcher.find()){
String result = matcher.group();
System.out.println(result);
//对结果进行二次正则,匹配出中文字符
String reg1 = "[\\u4e00-\\u9fa5]+";
Pattern p1 = Pattern.compile(reg1);
Matcher m1 = p1.matcher(result);
while(m1.find()){
character.append(m1.group());
}
//System.out.println(character.toString());
}
return character.toString();
}
public static void main(String[] args) {
String result = matchChineseCharacters("<a href='www.baidu.comds=id32434#comment'rewr>特432</a>453543<a guhll,,l>a1特123你好123吗?</a><a href=id=32434#comment'ewrer>特2</a><a>标签中的文字</a>");
System.out.println(result);
}
}
输出结果如下:
<a guhll,,l>a1特123你好123吗? <a>标签中的文字 特你好吗标签中的文字
这里做一下解释:
String reg = "<a((?!comment).)*?>([^<>]*?[\\u4e00-\\u9fa5]+[^<>]*?)+(?=</a>)";
这个匹配内容包含中文但标签的属性中不包含comment的<a>标签的正则中,不能使用向后查找?<=,因为向后查找只能是固定长度的内容,这里<a>标签中属性不确定,所以不能使用;[\\u4e00-\\u9fa5]+匹配中文字符串;而(?=</a>)使用向前查找?=,在结果中不会包含结束标签</a>。
这个问题就这样得到解决了。如果说要匹配指定标签中的指定内容,那么也是很容易改进的了。若有更好的正则,还请留言相互学习。
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools./regex/javascript
正则表达式在线生成工具:
http://tools./regex/create_reg
希望本文所述对大家java程序设计有所帮助。
# java
# 正则
# 匹配
# HTML
# a标签
# 中文字符
# Java正则表达式如何匹配特定html标签内的内容
# Java利用正则取标签之间的数据
# java正则替换img标签中src值的方法
# Java使用正则表达式删除所有HTML标签的方法示例
# Java中正则表达式去除html标签
# Java基于正则表达式获取指定HTML标签指定属性值的方法
# JAVA 使用正则提取A标签以及href链接
# 正则表达式
# 你好
# 但不
# 中不
# 这个问题
# 很容易
# 给大家
# 说要
# 若有
# 不确定
# 不包括
# 所述
# 还请
# 程序设计
# 群里
# 再为
# 你好吗
# 测试工具
# 解决了
# 讲述了
相关文章:
建站之星安装后如何配置SEO及设计样式?
公众号网站制作网页,微信公众号怎么制作?
网站制作需要会哪些技术,建立一个网站要花费多少?
如何将凡科建站内容保存为本地文件?
宝塔面板创建网站无法访问?如何快速排查修复?
如何通过山东自助建站平台快速注册域名?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
linux top下的 minerd 木马清除方法
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
建站之星会员如何解锁更多建站功能?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
如何挑选优质建站一级代理提升网站排名?
如何选择域名并搭建高效网站?
海南网站制作公司有哪些,海口网是哪家的?
招贴海报怎么做,什么是海报招贴?
实惠建站价格推荐:2025年高性价比自助建站套餐解析
seo网站制作优化,网站SEO优化步骤有哪些?
如何快速搭建二级域名独立网站?
如何通过PHP快速构建高效问答网站功能?
建站主机服务器选型指南与性能优化方案解析
专业公司网站制作公司,用什么语言做企业网站比较好?
如何用VPS主机快速搭建个人网站?
建站VPS推荐:2025年高性能服务器配置指南
岳西云建站教程与模板下载_一站式快速建站系统操作指南
nginx修改上传文件大小限制的方法
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
深圳网站制作的公司有哪些,dido官方网站?
如何在云虚拟主机上快速搭建个人网站?
南宁网站建设制作定制,南宁网站建设可以定制吗?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
建站VPS选购需注意哪些关键参数?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
网站专业制作公司有哪些,做一个公司网站要多少钱?
建站之星如何助力企业快速打造五合一网站?
如何在Windows虚拟主机上快速搭建网站?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
建站上传速度慢?如何优化加速网站加载效率?
网站制作公司排行榜,抖音怎样做个人官方网站
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
七夕网站制作视频,七夕大促活动怎么报名?
如何通过IIS搭建网站并配置访问权限?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
如何在Windows环境下新建FTP站点并设置权限?
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
,柠檬视频怎样兑换vip?
如何用IIS7快速搭建并优化网站站点?
*请认真填写需求信息,我们会在24小时内与您取得联系。