正则表达式:java中匹配HTML中a标签中的中文字符

今天群里一位朋友问到了一个正则表达式的问题,有如下内容:

特432

453543

a1特123你好123吗?

特2

标签中的文字现在要匹配出内容包含中文但标签的属性中不包含comment的标签中的汉字。

解决思路如下:

1、首先匹配出不包括comment的标签;

2、在匹配结果中进行二次匹配出中文;

代码如下:

package com.mmq.regex;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

* @use 匹配HTML的标签中的中文字符

* @ProjectName stuff

* @Author mumaoqiang

* @Date 2012-7-24 下午04:59:27

* @FullName com.mmq.regex.MatchChineseCharacters.java

* @JDK 1.6.0

* @Version 1.0

*/

public class MatchChineseCharacters {

/**

* 根据输入的内容,匹配出包含中文但不包含comment的标签中的中文字符

* @param source 要匹配的内容

* @return 标签中的中文字符

*/

public static String matchChineseCharacters(String source) {

//匹配出包含中文但不包含comment的标签

String reg = "()([^<>]*?[\\u4e00-\\u9fa5]+[^<>]*?)+(?=)";

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("特432453543a1特123你好123吗?特2标签中的文字");

System.out.println(result);

}

}输出结果如下:

a1特123你好123吗?

标签中的文字

特你好吗标签中的文字

这里做一下解释:

String reg = "()([^<>]*?[\\u4e00-\\u9fa5]+[^<>]*?)+(?=)";

这个匹配内容包含中文但标签的属性中不包含comment的标签的正则中,不能使用向后查找?<=,因为向后查找只能是固定长度的内容,这里标签中属性不确定,所以不能使用;[\\u4e00-\\u9fa5]+匹配中文字符串;而(?=)使用向前查找?=,在结果中不会包含结束标签。

这个问题就这样得到解决了。如果说要匹配指定标签中的指定内容,那么也是很容易改进的了。若有更好的正则,还请留言相互学习。

http://blog.csdn.net/mhmyqn/article/details/7781061

java a标签正则_正则表达式:java中婚配HTML中a标签中的中文字符相关推荐

  1. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  2. java 正则表达式效验_正则表达式(Java版整理)

    基础 元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 ^ 匹配字符串的开始 $ 匹配字符串的结束 \b 匹配字符串的结束 ...

  3. java 数字范围正则_Java 正则表达式

    正则表达式 概述 正则表达式定义了字符串的模式.正则表达式可以用来搜索.编辑或处理文本.正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. java.util.regex 包主要包括以下三 ...

  4. java转义字符包括元字符_正则表达式的元字符和转义字符,又及转义字符和ASCII码之间的关系小解...

    1.正则表达式的组合 正则表达式由元字符和转义字符组成 元字符有 ^ :断言目标的开始位置(或多行模式下的行首位置) $ :断言目标的介绍位置(或多行模式下的结尾位置) . :匹配除换行符外的其他任何 ...

  5. java web.xml 监听器_【JAVA 核心技术】java web 中的监听器

    为什么要有监听器? 监听器是用来处理一系列事件的java类,可被配置在java web项目中. 既然如此,为什么不用代码直接调用监听器? 这可能是因为J2EE规范规定的项目工程标准,用web.xml指 ...

  6. java的goto语句_语法 - Java中是否有goto语句?

    语法 - Java中是否有goto语句? 我对此感到困惑. 我们大多数人都被告知Java中没有任何goto语句. 但我发现它是Java中的关键词之一. 哪里可以使用? 如果它不能使用,那么为什么它作为 ...

  7. java 线程组作用_浅析Java中线程组(ThreadGroup类)

    一.概念 Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线 ...

  8. java xml dom4j 解析_在JAVA中怎么用DOM和DOM4j解析XML啊?

    二.XML文件 三.开始解析 public class JDOMTest { public static void main(String[] args) { // 进行对books.xml文件的JD ...

  9. java try catch嵌套_解析Java中未被捕获的异常以及try语句的嵌套使用

    Java未被捕获的异常 在你学习在程序中处理异常之前,看一看如果你不处理它们会有什么情况发生是很有好处的.下面的小程序包括一个故意导致被零除错误的表达式. class Exc0 { public st ...

最新文章

  1. 即将到来的日子 ,你会寂寞吗?
  2. 云原生产业联盟成立 蚂蚁金服当选为理事单位
  3. 乡村振兴谋定齐鲁样板-农业大健康·周荣江:国情讲坛创新
  4. 192.168.8.1手机登陆_荣耀Magic UI 3.1即将升级!这10款荣耀手机4月可期
  5. 大话设计模式—模板方法模式
  6. 如何获取Google地图API密钥?(翻译版)
  7. Alibaba数学竞赛试题与答案汇总(持续更新中)
  8. javascript --- 将DOM结构转换成虚拟DOM 虚拟DOM转换成真实的DOM结构
  9. IT人的自我导向型学习:学习的4个层次
  10. Java描述设计模式(15):责任链模式
  11. Python numpy基础知识
  12. C# ActiveX开发部署更新
  13. Python接口测试
  14. Leetcode 750.角矩形的数量
  15. Linux编辑器介绍
  16. Windows Terminal 使用 pem 文件连接服务器
  17. autosar-Layered Software Architecture
  18. Excel中取值函数三剑客:LEFT、RIGHT、MID
  19. EAS7.5服务器文件夹备份,ORACLE+EAS数据备份与恢复参考
  20. 如何实现app直播源代码,通过HLS进行直播观看

热门文章

  1. (笔记)Linux Root下的.gvfs出现异常解决办法
  2. inter® management engine interface黄色感叹号解决方法
  3. PHP输出中文乱码的解决方法
  4. mysql导出长数字到excel避免显示为科学记数法 解决方法
  5. Python和JavaScript之间的JSON日期时间
  6. makefile:4:***缺少分隔符。 停止
  7. 始终在新标签页中打开文件
  8. 如何将NSString转换为NSNumber
  9. Office 365启用多重身份验证
  10. 谈谈神秘的ES6——(一)初识ECMAScript