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

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

发布于 2020-8-12|

复制链接

摘记: 本文实例讲述了java正则匹配HTML中a标签里的中文字符。分享给大家供大家参考,具体如下:今天群里一位朋友问到了一个正则表达式的问题,有如下内容:

```xhtml

特432

453543

a1特123你 ..

本文实例讲述了java正则匹配HTML中a标签里的中文字符。分享给大家供大家参考,具体如下:今天群里一位朋友问到了一个正则表达式的问题,有如下内容:

```xhtml

特432

453543

a1特123你好123吗?

特2

标签中的文字

```

现在要匹配出内容包含中文但标签的属性中不包含comment的标签中的汉字。解决思路如下:1、首先匹配出不包括comment的标签;2、在匹配结果中进行二次匹配出中文;代码如下:

```java

package com.mmq.regex;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

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

* @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);

}

}

```

输出结果如下:

```xhtml

a1特123你好123吗?

标签中的文字

特你好吗标签中的文字

```

这里做一下解释:

```java

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

```

这个匹配内容包含中文但标签的属性中不包含comment的标签的正则中,不能使用向后查找?标签中属性不确定,所以不能使用;[\\u4e00-\\u9fa5]+匹配中文字符串;而(?=)使用向前查找?=,在结果中不会包含结束标签。这个问题就这样得到解决了。如果说要匹配指定标签中的指定内容,那么也是很容易改进的了。若有更好的正则,还请留言相互学习。PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多语言制作工具(2013-01-24更新,支持VS2005、2008、2010、2012)(已开源)

前一段时间,制作了一个多语言资源文件制作工具,现在把这个工具集成到VS2005、VS2008,vs2010中,以增加VS自身资源编辑界面,对多资源编辑的麻烦,简化多语言资源文件的制作。 这个插件是和VS的项目绑定的&…

尚学人工智能课程---1、大数据和人工智能介绍

尚学人工智能课程---1、大数据和人工智能介绍 一、总结 一句话总结: 机器学习是什么:数据背后体现的客观算法:人在电脑上留下的大量日志可以反映人的性格和习惯 深度学习是什么:神经网络如果深度大于3,就是深度学习 神…

Flatten Binary Tree to Linked List (DFS)

Given a binary tree, flatten it to a linked list in-place. For example,Given 1/ \2 5/ \ \3 4 6The flattened tree should look like: 1\2\3\4\5\6代码: class Solution{ public:void flatten(TreeNode *root) {if(rootNULL) return;TreeNode* proot-…

mysql 回表查询优化_MySQL优化:如何避免回表查询?什么是索引覆盖?

转自:https://mp.weixin.qq.com/s?__bizMjM5ODYxMDA5OQ&mid2651962609&idx1&sn46e59691257188d33a91648640bcffa5&chksmbd2d092d8a5a803baea59510259b28f0669dbb72b6a5e90a465205e9497e5173d13e3bb51b19&mpshare1&scene1&srcid&sh…

安装 Windows 自动化 API 3.0 后,Visual Studio 2010 的运行速度更快

安装 Windows 自动化 API 3.0 后,Visual Studio 2010 的运行速度更快 本文适用于以下产品: Microsoft Visual Studio 2010如果未安装 Windows 自动化 API 3.0,则使用 Windows 自动化 API 的应用程序会明显降低 Microsoft Visual Studio Inte…

cocos2d-x3.2创建项目

mac: 1.用终端进入/Users/lixiang/Desktop/cocos2d-x-3.2/tools/cocos2d-console/bin目录执行./cocos.py。 (出现Permission denied,是权限问题,可以先使用chmod命令获得权限,输入chmod ux ./cocos.py 回车&#xff0c…

使用ASP.Net WebAPI构建REST服务(一)——简单的示例

由于给予REST的Web服务非常简单易用,它越来越成为企业后端服务集成的首选方法。本文这里介绍一下如何通过微软的Asp.Net WebAPI快速构建REST-ful 服务。 首先创建一个Asp.Net Web应用程序(我这里用的是Visual Studio 2013,它已经内置了Web AP…

网页游戏服务器配置

最近要架设一个网页游戏,就到硬件市场配了一台服务器,下面是具体的配置清单: Intel Xeon 5310 1.6G 1350  金士顿4GB DDR2 667(ECC FB DIMM)*2 全缓冲处理内存 680*2  主板 Intel S5000VSA 1750  硬盘 320G SATA*2 450*2   国鑫GX514…

Linux sudo命令详解

Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。 使用权限:在 /etc/sudoers 中有出现的使用者。 简单的说,sudo 是一种权限管理机制,管理员可以授权于一些普通用户…

告别花瓶:2015年智能电视路在何方?

智能手机与平板在IT市场风生水起,让几岁小孩到大爷大妈们都对玩手机、平板乐此不彼。曾经辉煌几十年的电视行业,如今又重新融合了智能系统以全新的面貌出现在人们面前。多家互联网企业对这一“翻新”的市场虎视眈眈,并推出了多款智能电视。但…

文件类型

转载于:https://www.cnblogs.com/hlc-123/p/10958326.html

灾备还缺一套评价体系

1月10日,灾备技术产业联盟正式成立。这样一个中立的、由业内众多厂商和大型用户组成的、以服务为宗旨的联盟将为我国灾备技术和应用的规范化发展做出积极贡献。经过一年多的酝酿、历经7次筹备会议,由华为、北京邮电大学、中治研国际信息技术研究院和中国…

DFS知识点

2019-06-01 11:14:34 加油,坚持!!! 1. 2. 3. 转载于:https://www.cnblogs.com/Artimis-fightting/p/10960409.html

Sery送的书与网站短信解决方案

今天Sery(http://sery.blog.51cto.com/)在qq上说要送我一本他刚写的书《互联网运营智慧》,因为里面引用了我写的一段程序。 #!/usr/bin/perl -w use strict; use LWP::Simple; use URI::Escape; use Digest::MD5; my ($mobile, $content) AR…

兰州财经大学JAVA期末考什么_兰州财经大学大学国文下答案

兰州财经大学大学国文下答案更多相关问题建立HSE管理体系可提高企业安全、环境和健康()。A.管理水平B.操作水平C.使用水平D.能源水平计算机保存矢量图形实际上是存储描述矢量图形的一组绘图指令及有关的参数,因此 矢量图形的存储取样频率、量化精度将影响录制数字音…

Android 反射获取内外置存储卡方法

2019独角兽企业重金招聘Python工程师标准>>> 以前的Android(4.1之前的版本)中,SDcard跟路径通过“/sdcard”或者“/mnt/sdcard”来表示存储卡,而在Jelly Bean系统中修改为了“/storage/sdcard0”,以后可能还会有多个SDcard的情况。…

docker安装mysql redis_Docker安装Mysql和Redis以及构建部署应用镜像

为了方便本地测试项目,为了方便开启新的环境,为了方便部署,打算本地利用Docker安装Mysql和Redis。搭建Springboot项目,编写Dockerfile,打包构建镜像。简单使用docker-compose启动服务。简述docker-compose和K8S。环境系…

plsql if

set serveroutput onaccept num prompt 请输入一个数字; declare pnum number : #beginif pnum0 then dbms_output.put_line(您输入的数据是0);elsif pnum1 then dbms_output.put_line(您输入的数据是1);elsif pnum2 then dbms_output.put_line(您输入的数据是2);e…

Windows 下查看端口占用情况 netstat / tasklist / findstr

为什么80%的码农都做不了架构师?>>> Windows服务器不熟悉很多,尤其是防火墙这块。不过其实和Linux一样,省事的话就是关了就好了。不过对于端口占用还是时常有的,比如QQ音乐,迅雷这些,如果你的电…

unicode 字符串转成 TDesC-转贴

unicode 字符串转成 TDesC所有描述符,其实都不是真实的类,而是一个typedef。在非内核模式的时候,所有的描述符,如TDesC,其真实的实现是TDesC16,在内核模式的时候,则是TDesC8。还是看名取义&…