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

网友投稿 272 2023-06-19


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 匹配HTeLYoZHJML的标签中的中文字符

* @ProjectName stuff

* @Author mumaoqiang

* @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]+匹配中文字符串;而(?=)使用向前查找?=,在结果中不会包含结束标签。

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

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

javascript正则表达式在线测试工具:

http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:

http://tools.jb51.net/regex/create_reg

希望本文所述对大家java程序设计有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java 中cookie的详解及简单实例
下一篇:angular分页指令操作
相关文章

 发表评论

暂时没有评论,来抢沙发吧~