正则表达式

一、定义:

正则表达式是一种字符串操作的语法规则,利用此语法规则可以灵活的实现字符串的匹配、拆分、替换。

示例:要求判断某一个字符串是否有数字组成。
示例:要求判断某一个字符串是否有数字组成。
常规方法:
public static Boolean isNumber(String str ){
      if ( "" .endsWith( str )|| null == str ){
           return false ;
     } else {
           char data []= str .toCharArray();
           for ( int i = 0; i < data . length ; i ++) {
               if ( data [ i ]> '9' || data [ i ]< '0' ){
                    return false ;
              }
              
          }
     }
      return true ;
}

二、正则标记:

1、字母:匹配单个字母
(1) A :表示匹配字母A;
(2) \\:匹配转义字符“\”;
因为在Java中 反斜杠 是转义符,所以要让它表示本意,需要转义符(就是另一个 反斜杠 )进行转义,所以就需要两个 反斜杠 来表示反斜杠.这样在用java 正则表达式 匹配时,就需要用四个反斜杠(两个是转义符,两个是反斜杠)来匹配两个反斜杠示例:
String str = "\\" ;
str .matches( "\\\\" )
(3) \t:匹配转义字符“\t”;
(4) \n:匹配转义字符“\n”;
2、一组字符:任意匹配里面的一个单个字符:
// String str = "f" str .matches( "[abcdefgABCDEFG]" );
(1)[abc]:表示可能是字母a,可能是字母b或者是字母c;
(2)[^abc]:表示不是字母a,字母b,字母c的任意一个;
(3)[a-zA-Z]:表示全部字母中的任意一个;
(4)[0-9]:表示全部数字的任意一个;

(1)· :表示任意的一位字符;
       (2)\d :表示任意的一位数字,等价于“[0-9]”;
       (3)\D :表示任意的一位非数字,等价于“[~0-9]”;
       (4)\w :表示任意的一位字母、数字、_,等价于“[a-zA-Z0-9_]”;
       (5)\w :表示任意的一位非字母、数字、_,等价于“[^a-zA-Z0-9_]”;
       (6)\s :表示任意的一位空格,例如:\n、\t等;
       (7)\S :表示任意的一位非空格;
3、边界匹配:在以后编写JavaScript的时候使用正则中要使用到:
       (1)^:表示一组正则的开始;
       (2)$:表示一组正则的结束;
4、简写表达式:每一位出现的简写标记也只表示一位:
       (1)· :表示任意的一位字符;
       (2)\d :表示任意的一位数字,等价于“[0-9]”;
       (3)\D :表示任意的一位非数字,等价于“[~0-9]”;
       (4)\w :表示任意的一位字母、数字、_,等价于“[a-zA-Z0-9_]”;
       (5)\w :表示任意的一位非字母、数字、_,等价于“[^a-zA-Z0-9_]”;
       (6)\s :表示任意的一位空格,例如:\n、\t等;
       (7)\S :表示任意的一位非空格;
5、数量表示:之前所有的正则都只是表示一位,如果要表示多位,则就需要数量表示。
       (1)正则表达式?:此正则出现0次或1次;
(2)正则表达式*:此正则出现0次、1次或多次; "a" .matches( "a?" )   "" .matches( " a* " )
(3)正则表达式+:次正则出现1次或多次; "aaaa" .matches( "a+" )
(4)正则表达式{n}:此正则出现正好n次;
(5)正则表达式{n,}:此正则出现n次以上;
(6)正则表达式{n,m}:此正则出现n   m次。

三、String类对正则的支持

1.字符串替换  "aaa&**389fhh%m$mmdd#kk3445@ll" .replaceAll( "[^a-z]" , "" );
2.字符串拆分
String str = "aaa0bbb1ccc2ddd3eee4" ;
     String regex = "[0-9]" ;
     String result []= str .split( regex );
      for ( int i = 0; i < result . length ; i ++) {
          System. out .println( result [ i ]);
     }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值