全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java正则匹配HTML中a标签里的中文字符示例

本文实例讲述了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小时内与您取得联系。