中文字符匹配java_java正则匹配HTML中a标签里的中文字符示例
java正則匹配HTML中a標(biāo)簽里的中文字符示例
發(fā)布于 2020-8-12|
復(fù)制鏈接
摘記: 本文實(shí)例講述了java正則匹配HTML中a標(biāo)簽里的中文字符。分享給大家供大家參考,具體如下:今天群里一位朋友問到了一個(gè)正則表達(dá)式的問題,有如下內(nèi)容:
```xhtml
特432
453543
a1特123你 ..
本文實(shí)例講述了java正則匹配HTML中a標(biāo)簽里的中文字符。分享給大家供大家參考,具體如下:今天群里一位朋友問到了一個(gè)正則表達(dá)式的問題,有如下內(nèi)容:
```xhtml
特432
453543
a1特123你好123嗎?
特2
標(biāo)簽中的文字
```
現(xiàn)在要匹配出內(nèi)容包含中文但標(biāo)簽的屬性中不包含comment的標(biāo)簽中的漢字。解決思路如下:1、首先匹配出不包括comment的標(biāo)簽;2、在匹配結(jié)果中進(jìn)行二次匹配出中文;代碼如下:
```java
package com.mmq.regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @use 匹配HTML的標(biāo)簽中的中文字符
* @ProjectName stuff
* @Author mumaoqiang
* @FullName com.mmq.regex.MatchChineseCharacters.java
* @JDK 1.6.0
* @Version 1.0
*/
public class MatchChineseCharacters {
/**
* 根據(jù)輸入的內(nèi)容,匹配出包含中文但不包含comment的標(biāo)簽中的中文字符
* @param source 要匹配的內(nèi)容
* @return 標(biāo)簽中的中文字符
*/
public static String matchChineseCharacters(String source) {
//匹配出包含中文但不包含comment的標(biāo)簽
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);
//對(duì)結(jié)果進(jìn)行二次正則,匹配出中文字符
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標(biāo)簽中的文字");
System.out.println(result);
}
}
```
輸出結(jié)果如下:
```xhtml
a1特123你好123嗎?
標(biāo)簽中的文字
特你好嗎標(biāo)簽中的文字
```
這里做一下解釋:
```java
String reg = "([^]*?[\\u4e00-\\u9fa5]+[^]*?)+(?=)";
```
這個(gè)匹配內(nèi)容包含中文但標(biāo)簽的屬性中不包含comment的標(biāo)簽的正則中,不能使用向后查找?標(biāo)簽中屬性不確定,所以不能使用;[\\u4e00-\\u9fa5]+匹配中文字符串;而(?=)使用向前查找?=,在結(jié)果中不會(huì)包含結(jié)束標(biāo)簽。這個(gè)問題就這樣得到解決了。如果說要匹配指定標(biāo)簽中的指定內(nèi)容,那么也是很容易改進(jìn)的了。若有更好的正則,還請(qǐng)留言相互學(xué)習(xí)。PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的中文字符匹配java_java正则匹配HTML中a标签里的中文字符示例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wps日期加减算天数_日期相减之后的天数
- 下一篇: qq和qq浏览器的区别