java匹配中文汉字的正则表达式

导语 正则表达式匹配中文先要了解中文的编码代码如下 复制代码[u4E00-u9FA5]汉字?[uFE30-uFFA0]全角字符[u4E00-u9FA5]汉字?[uFE30-uFFA0]全角字符匹配中文字符的正则表达式: [u4e00-u9fa5]匹配双字节字符(包括汉字
正则表达式匹配中文先要了解中文的编码

 代码如下 复制代码 
[u4E00-u9FA5]汉字?[uFE30-uFFA0]全角字符

[u4E00-u9FA5]汉字?[uFE30-uFFA0]全角字符
 

匹配中文字符的正则表达式: [u4e00-u9fa5]
匹配双字节字符(包括汉字在内):[^x00-xff]

应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

 代码如下 复制代码 
String.prototype.len=function(){return this.replace([^x00-xff]/g,"aa").length;}

匹配空行的正则表达式:n[s| ]*r

匹配HTML标记的正则表达式:/<(.*)>.*</1>|<(.*) />/

匹配首尾空格的正则表达式:(^s*)|(s*$)


知道它了我们就好解决了

 代码如下 复制代码 
public static void regxChinese(){  
       // 要匹配的字符串     
       String source = "<span title='5 星级酒店' class='dx dx5'>";  
       // 将上面要匹配的字符串转换成小写     
      // source = source.toLowerCase();     
       // www.111cn.net 匹配的字符串的正则表达式     
       String reg_charset = "<span[^>]*?title='([0-9]*[\s|\S]*[u4E00-u9FA5]*)'[\s|\S]

*class='[a-z]*[\s|\S]*[a-z]*[0-9]*'";       
   
       Pattern p = Pattern.compile(reg_charset);     
       Matcher m = p.matcher(source);     
       while (m.find()) {     
        System.out.println(m.group(1));  
       }  

 public static void regxChinese(){
        // 要匹配的字符串  
        String source = "<span title='5 星级酒店' class='dx dx5'>";
        // 将上面要匹配的字符串转换成小写  
       // source = source.toLowerCase();  
        // 匹配的字符串的正则表达式  
        String reg_charset = "<span[^>]*?title='([0-9]*[\s|\S]*[u4E00-u9FA5]*)'[\s|\S]

*class='[a-z]*[\s|\S]*[a-z]*[0-9]*'";    
 
        Pattern p = Pattern.compile(reg_charset);  
        Matcher m = p.matcher(source);  
        while (m.find()) {  
         System.out.println(m.group(1));
        }
 }
 

Java的正则表达式是可以匹配中文字符的,同时,用中文字符来写表达式也是可以的

 代码如下 复制代码 
String reg_charset = "<span[^>]*?title='([0-9]*[\s|\S]*星级酒店)'[\s|\S]*class='[a-z]*[\s|\S]

*[a-z]*[0-9]*'";    

 String reg_charset = "<span[^>]*?title='([0-9]*[\s|\S]*星级酒店)'[\s|\S]*class='[a-z]*

[\s|\S]*[a-z]*[0-9]*'";   
 

一些常用的正则匹配规则

匹配中文字符的正则表达式: [u4e00-u9fa5]   
  评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 
  匹配双字节字符(包括汉字在内):[^x00-xff] 
  评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 
  匹配空白行的正则表达式:ns*r 
  评注:可以用来删除空白行 
  匹配HTML标记的正则表达式:<(S*?)[^>]*>.*?|<.*? /> 
  评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力 
  匹配首尾空白字符的正则表达式:^s*|s*$ 
  评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式 
  匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 
  评注:表单验证时很实用 
  匹配网址URL的正则表达式:[a-zA-z]+://[^s]* 
  评注:网上流传的版本功能很有限,上面这个基本可以满足需求 
  匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 
  评注:表单验证时很实用 
  匹配国内电话号码:d{3}-d{8}|d{4}-d{7} 
  评注:匹配形式如 0511-4405222 或 021-87888822 
  匹配腾讯QQ号:[1-9][0-9]{4,} 
  评注:腾讯QQ号从10000开始 
  匹配中国邮政编码:[1-9]d{5}(?!d) 
  评注:中国邮政编码为6位数字 
  匹配身份证:d{15}|d{18} 
  评注:中国的身份证为15位或18位 
  匹配ip地址:d+.d+.d+.d+ 
  评注:提取ip地址时有用

http://www.aseoe.com/ true java匹配中文汉字的正则表达式 http://www.aseoe.com/show-16-146-1.html report <?php echo strlen($content) / 2; ?> 正则表达式匹配中文先要了解中文的编码代码如下 复制代码[u4E00-u9FA5]汉字?[uFE30-uFFA0]全角字符[u4E00-u9FA5]汉字?[uFE30-uFFA0]全角字符匹配中文字符的正则表达式: [u4e00-u9fa5]匹配双字节字符(包括汉字
本站欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明: 文章转载自:爱思资源网 http://www.aseoe.com/show-16-146-1.html

[前端插件推荐] Plugin

1 2 3 4
  • jQuery实现逐字逐句显示插件l-by-l.min.js
  • jQuery带方向感知的鼠标滑过图片边框特效插件
  • jQuery HotKeys监听键盘按下事件keydown插件
  • 响应式无限轮播jQuery旋转木马插件
响应式无限轮播jQuery旋转木马插件
web前端开发
爱思资源网 Copyright 2012-2014 Www.Aseoe.Com All rights reserved.(晋ICP备13001436号-1)