java a标签正则_正则表达式:java中婚配HTML中a标签中的中文字符
正则表达式: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标签中的中文字符相关推荐
- java项目----教务管理系统_基于Java的教务管理系统
java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...
- java 正则表达式效验_正则表达式(Java版整理)
基础 元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 ^ 匹配字符串的开始 $ 匹配字符串的结束 \b 匹配字符串的结束 ...
- java 数字范围正则_Java 正则表达式
正则表达式 概述 正则表达式定义了字符串的模式.正则表达式可以用来搜索.编辑或处理文本.正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. java.util.regex 包主要包括以下三 ...
- java转义字符包括元字符_正则表达式的元字符和转义字符,又及转义字符和ASCII码之间的关系小解...
1.正则表达式的组合 正则表达式由元字符和转义字符组成 元字符有 ^ :断言目标的开始位置(或多行模式下的行首位置) $ :断言目标的介绍位置(或多行模式下的结尾位置) . :匹配除换行符外的其他任何 ...
- java web.xml 监听器_【JAVA 核心技术】java web 中的监听器
为什么要有监听器? 监听器是用来处理一系列事件的java类,可被配置在java web项目中. 既然如此,为什么不用代码直接调用监听器? 这可能是因为J2EE规范规定的项目工程标准,用web.xml指 ...
- java的goto语句_语法 - Java中是否有goto语句?
语法 - Java中是否有goto语句? 我对此感到困惑. 我们大多数人都被告知Java中没有任何goto语句. 但我发现它是Java中的关键词之一. 哪里可以使用? 如果它不能使用,那么为什么它作为 ...
- java 线程组作用_浅析Java中线程组(ThreadGroup类)
一.概念 Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线 ...
- java xml dom4j 解析_在JAVA中怎么用DOM和DOM4j解析XML啊?
二.XML文件 三.开始解析 public class JDOMTest { public static void main(String[] args) { // 进行对books.xml文件的JD ...
- java try catch嵌套_解析Java中未被捕获的异常以及try语句的嵌套使用
Java未被捕获的异常 在你学习在程序中处理异常之前,看一看如果你不处理它们会有什么情况发生是很有好处的.下面的小程序包括一个故意导致被零除错误的表达式. class Exc0 { public st ...
最新文章
- 即将到来的日子 ,你会寂寞吗?
- 云原生产业联盟成立 蚂蚁金服当选为理事单位
- 乡村振兴谋定齐鲁样板-农业大健康·周荣江:国情讲坛创新
- 192.168.8.1手机登陆_荣耀Magic UI 3.1即将升级!这10款荣耀手机4月可期
- 大话设计模式—模板方法模式
- 如何获取Google地图API密钥?(翻译版)
- Alibaba数学竞赛试题与答案汇总(持续更新中)
- javascript --- 将DOM结构转换成虚拟DOM 虚拟DOM转换成真实的DOM结构
- IT人的自我导向型学习:学习的4个层次
- Java描述设计模式(15):责任链模式
- Python numpy基础知识
- C# ActiveX开发部署更新
- Python接口测试
- Leetcode 750.角矩形的数量
- Linux编辑器介绍
- Windows Terminal 使用 pem 文件连接服务器
- autosar-Layered Software Architecture
- Excel中取值函数三剑客:LEFT、RIGHT、MID
- EAS7.5服务器文件夹备份,ORACLE+EAS数据备份与恢复参考
- 如何实现app直播源代码,通过HLS进行直播观看