Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 390|回复: 0

[正则表达式学习]java正则表达式学习笔记2.1

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-31 00:00:30 | 显示全部楼层 |阅读模式
    徒弟:师傅呀,正则怎么用呀?搞个有条理性的东东给我看看吧!
    师傅:也对,没条理的东西,不懂的人,看了更加晕,先讲讲:字符组。

    1、基本功能
    字符组:
    l 正则表达式的最基本结构之一
    l 作用:规格某个位置能够出现的字符
    l 形式:以[...]给出,在方括号内列出字符

    实例:
    判断10进制数值,只要能够判断每个数字出现在0-9之间,那就是10进制数值。
    1. public class GeneralNumTest {
    2. public static void main(String[] args) {
    3. String[] octDigits = new String[] { "0", "1", "2", "3","4","5","6","7","8","9"};
    4. String[] hexDigits = new String[] { "0", "1", "2", "3","4","5","6","7","8","9",
    5. "a", "b", "c", "d","e","f"};
    6. String octDigitRegex = "[0123456789]";
    7. String hexDigitRegex = "[0123456789abcdef]";
    8. for (String octDigit : octDigits) {
    9. if(regexMatch(octDigit,octDigitRegex)){
    10.    System.out.println("10进制数值:" + octDigit +"能够匹配正则:" + octDigitRegex);
    11. }else{
    12.    System.out.println("10进制数值:" + octDigit +"不能够能够匹配正则:" + octDigitRegex);
    13. }
    14. }
    15. for (String hexDigit : hexDigits) {
    16.   if(regexMatch(hexDigit,hexDigitRegex)){
    17.     System.out.println("16进制数值:" + hexDigit +"能够匹配正则:" + hexDigitRegex);
    18.   }else{
    19.     System.out.println("16进制数值:" + hexDigit +"不能够能够匹配正则:" + hexDigitRegex);
    20.   }
    21. }
    22. }
    23. private static boolean regexMatch(String s, String regex) {
    24.    return s.matches(regex);
    25. }
    26. }
    复制代码
    运行结果:
    10进制数值:0能够匹配正则:[0123456789]
    10进制数值:1能够匹配正则:[0123456789]
    10进制数值:2能够匹配正则:[0123456789]
    10进制数值:3能够匹配正则:[0123456789]
    10进制数值:4能够匹配正则:[0123456789]
    10进制数值:5能够匹配正则:[0123456789]
    10进制数值:6能够匹配正则:[0123456789]
    10进制数值:7能够匹配正则:[0123456789]
    10进制数值:8能够匹配正则:[0123456789]
    10进制数值:9能够匹配正则:[0123456789]
    16进制数值:0能够匹配正则:[0123456789abcdef]
    16进制数值:1能够匹配正则:[0123456789abcdef]
    16进制数值:2能够匹配正则:[0123456789abcdef]
    16进制数值:3能够匹配正则:[0123456789abcdef]
    16进制数值:4能够匹配正则:[0123456789abcdef]
    16进制数值:5能够匹配正则:[0123456789abcdef]
    16进制数值:6能够匹配正则:[0123456789abcdef]
    16进制数值:7能够匹配正则:[0123456789abcdef]
    16进制数值:8能够匹配正则:[0123456789abcdef]
    16进制数值:9能够匹配正则:[0123456789abcdef]
    16进制数值:a能够匹配正则:[0123456789abcdef]
    16进制数值:b能够匹配正则:[0123456789abcdef]
    16进制数值:c能够匹配正则:[0123456789abcdef]
    16进制数值:d能够匹配正则:[0123456789abcdef]
    16进制数值:e能够匹配正则:[0123456789abcdef]
    16进制数值:f能够匹配正则:[0123456789abcdef]

    以连字符"-"表示范围:
    l [0123456789]的表示法过于累赘,可以用范围表示法简要描述
    l [0123456789] = [0-9]
    l [0-789] = [0-9]
    l [0123456789abcdef] = [0-9a-f]

    刚刚的例子,可以修改为:
    String octDigitRegex = "[0-9]";
    String hexDigitRegex = "[0-9a-f]";

    关于连字符的注意事项:
    l 在字符组内部,只有当连字符出现在两个字符之间时,才能表示字符的范围;
    l 如果出现在字符组的开头,则只能表示单个字符"-",就是连字符本身。

    例如:
    1. public class GeneralNumTwo {
    2. public static void main(String[] args) {
    3. String[] characters = new String[] { "a", "b", "c", "d","e","f","g","-"};
    4. String regex1 = "[a-g]";
    5. String regex2 = "[-ag]";
    6. for (String character : characters) {
    7.   if(regexMatch(character,regex1)){
    8.    System.out.println("字符:" + character +"能够匹配正则:" + regex1);
    9.   }else{
    10.    System.out.println("字符:" + character +"不能够能够匹配正则:" + regex1);
    11. }
    12. }
    13. for (String character : characters) {
    14. if(regexMatch(character,regex2)){
    15.    System.out.println("字符:" + character +"能够匹配正则:" + regex2);
    16. }else{
    17.    System.out.println("字符:" + character +"不能够能够匹配正则:" + regex2);  
    18. }
    19. }
    20. }
    21. private static boolean regexMatch(String s, String regex) {
    22.    return s.matches(regex);
    23. }
    24. }
    复制代码
    运行结果:
    字符:a能够匹配正则:[a-g]
    字符:b能够匹配正则:[a-g]
    字符:c能够匹配正则:[a-g]
    字符:d能够匹配正则:[a-g]
    字符:e能够匹配正则:[a-g]
    字符:f能够匹配正则:[a-g]
    字符:g能够匹配正则:[a-g]
    字符:-不能够匹配正则:[a-g]
    字符:a能够匹配正则:[-ag]
    字符:b不能够匹配正则:[-ag]
    字符:c不能够匹配正则:[-ag]
    字符:d不能够匹配正则:[-ag]
    字符:e不能够匹配正则:[-ag]
    字符:f不能够匹配正则:[-ag]
    字符:g能够匹配正则:[-ag]
    字符:-能够匹配正则:[-ag] 本文出自 “leolee” 博客,请务必保留此出处http://jooben.blog.51cto.com/253727/317152
    复制代码

       
         
         
          
          

            
          

            
          
         
       

      


    源码下载:http://file.javaxxz.com/2014/10/31/000029843.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-25 19:09 , Processed in 0.355126 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表