Java 正则表达式全攻略(八)

Java 正则表达式全攻略(八)

[ 2010-04-23 12:48:13.0 | 作者: 随想 类别: 基础强化 ] 来源:网络收集     浏览 1712
labels:Java 正则表达式全攻略(八) java正则表达式 正则注释

注释

正则表达式大多都是苦涩难读的,因此我们需要在表达式中添加注释,来增强表达式的可读性。Java 正则的注释以“#”开始,回车结束,而且默认是不开启的。我们可以看看下面的例子:

 1: 

 String regex = "(19|20)\\d\\d[- /.]#年,只允许是19或20开头的\n " +

 2: 

 "(0?[1-9]|1[012])[- /.]#月,只允许1-12\n " +

 3: 

 "(0?[1-9]|[12][0-9]|3[01])#日,只允许1到31 " ;

 4: 

 Pattern p = Pattern.compile(regex, Pattern.COMMENTS);

 5: 

 Matcher m = p.matcher("2010.2.21" );

 6: 

 assertThat(m.matches(), is(true));

 7: 

 m = p.matcher("1879.1.8" );

 8: 

 assertThat(m.matches(), is(false));

 9: 

 m = p.matcher("2010.13.21" );

 10: 

 assertThat(m.matches(), is(false));

 11: 

 m = p.matcher("2010.2.32" );

 12: 

 assertThat(m.matches(), is(false));

这样看起来是不是比较清晰呢?

其他

常用的表达式

  1. Email
    ^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$
  2. 十六进制值
    ^#?([a-f0-9]{6}|[a-f0-9]{3})$
  3. URL
    ^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
  4. 年-月-日
    ^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$
  5. IP地址
    ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
  6. HTML标签
    ^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$
  7. 中文字符
    [\u4e00-\u9fa5]
  8. 双字节字符(包括汉字在内)
    [^\x00-\xff]
  9. 国内电话号码
    ^(\d{3}-|\d{4}-)?(\d{8}|\d{7})?$
  10. 腾讯QQ号
    ^[1-9]*[1-9][0-9]*$

其他资源

  1. http://regexlib.com/
    强烈推荐的一个网站,想找正则表达式,直接在上面查就可以了
  2. http://www.regular-expressions.info/
    经典的正则表达式教程,国内大部分正则教程的源头,可惜就是E文的

你可能感兴趣的:(java,html,正则表达式,qq,腾讯)