JAVA----正则表达式

正则表达式

   (1)很多时候,我们都需要对一些字符进行匹配,查找,替换等复杂操作。
            我们可以通过“正则表达式”来帮助实现这些复杂操作。
   (2)正则表达式,它是一个有“特殊意义”的字符串,定义了一种“校验规则”。

      常用字符集

 []:表示匹配括号内的一个字符
   [abc]:表示匹配abc中的任意一个
   [a-z]:表示匹配a-z中的任意一个字符
   [0-9]:表示匹配0-9中的任意一个字符
   [a-zA-Z0-9]:表示匹配这些字符中的任意一个字符
   [^a]:表示匹配除了a字符的任意一个字符
   [a-z&&[^a]]:表示匹配a-z中除了a的任意一个字符

      预定义字符集

 .:表示匹配任意一个字符
 \d:表示匹配任意一个数字字符,相当于[0-9]
 \w:表示匹配任意一个单词字符,相当于[a-zA-Z0-9_]
 \s:表示匹配任意一个空格字符,相当于[\t\r\n\b]
 \D:表示匹配任意一个非数字字符,相当于[^0-9]
 \W:表示匹配任意一个非单词字符,相当于[^a-zA-Z0-9_]
 \S:表示匹配任意一个非空格字符,相当于[^\t\r\n\b]
 
一些特殊字符需要使用转义字符:"\"

     数量词

   X:表示字符集
   X?:匹配X 0个或1个
   X+:匹配X 1个或1个以上
   X*:匹配X 0个或0个以上
   X{m}:匹配X m个
   X{m,}:匹配X m个及以上
   X{m,n}:匹配X m到n个 

    ():分组

 ()将正则表达式的部分规则进行了划分,可以使用|来进行选择其中一组规则
   reg1:手机号前带有区号
      +86  1375651674
      0086 1375651674
      
      正则表达式:
      (+86|0086)?\\s?1\\d{10}

   reg2: 判断一个字符串是不是一个网址
      http://www.baidu.com
      https://www.baidu.com
      www.baidu.com
      www.baidu.cn
      www.baidu.com.cn
      www.baidu.net
      www.baidu.edu      
      (http://|https://)?www\\.[\\w&&^_]\\.(com|edu|net|com\\.cn|cn)

      ^和$

  有时,我们想校验一个字符串是不是从头到尾都符合一个规则校验
      此时需要在正则表达式前后添加相应的符号:
   ^:添加在正则表达式前,表示要校验的普通字符串的开头就必须符合规则
   $:添加在正则表达式后,表示要校验的普通字符串的末尾必须符合规则
   
   前后都有此符号时:考虑的普通字符串的整体

 reg:
      "^[\\d]{6,8}"(校验的字符串的前面是6-8位数字就符合)
      "1234561abc"可以满足上述正则表达式
      
      "[\\d]{6,8}$"(校验的字符串的后面是6-8位数字就符合)
      "abc12345678"可以满足上述正则表达式
      
      "^[\\d]{6,8}$"(校验字符串是否从开头到结尾都是6-8位数字)
      "12345678abc12345678"不可以满足上述正则表达式
      "12345678"可以满足
      
      matches(String regex):此方法验证不了我们自定义时添加的^或$
            因为当把正则表达式传入方法内后,内部逻辑帮助添加了^和$        

总结:正则表达式是一个灵活,逻辑性强的规则校验语法,通常用于文本中。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值