一次性搞定正则表达式

一次性搞定正则表达式

                                                                                                        ——我一直不太信任自己的记忆力,所以我把它们都写下来 

   

    从学java开始就在接触正则表达式,然后一直都没有精确的掌握它,今天有一个正则表达式的需求,然后又花了半小时梳理了下。下面我们一步一步开始(请仔细记清楚一步步的操作,否则你都不想往下看了 ),推荐大家打开http://tool.oschina.net/regex/ 在线正则表达式边看边测试

  • ^$表示以字符串开始和以字符串结尾。例:^abc 表示必须以abc开始(如:abcd,abcefd),abc$ 表示必须以abc结尾(如:);^abc$ 只能是abc(abc是个整体,abcabc不匹配) ;abc 表示包含abc的字符串
  • * + 和 分别表示出现0次或多次,1次或多次,0次或1次。例:abc*表示有0个或多个abc,其他两个同理
  • 上面的*+?完全可以用范围代替,abc{2}表示ab后面有至少两个c,如abcc,dfdabccccc都是符合的;abc{2}$ 只有以abcc结尾的符合,如343abcc   
  • abc{1,2} 表示ab后面跟着1或2个c;
  • abc{3,} 表示ab后面跟着至少3个c; {,3}这种是不正确的
  • |  或运算  ab|cd 表示字符串里有ab或者cd;
  • . 可以替换任意字符

下面是几种是需要记住的

"[ab]":表示一个字符串有一个"a""b"(相当于"a|b");
"[a-d]"
:表示一个字符串包含小写的'a''d'中的一个(相当于"a|b|c|d"或者"[abcd]");
"^[a-zA-Z]"
:表示一个以字母开头的字符串;
"[0-9]%"
:表示一个百分号前有一位的数字;
",[a-zA-Z0-9]$"
:表示一个字符串以一个逗号后面跟着一个字母或数字结束。

下面看看具体的实例,比如我今天做的:一个输入框,可以输入数字,也可以输入多个数字用逗号隔开,或者两个数字用~分隔。

      我写的正则表达式 :  ((^[0-9]+[~]?)?|^([0-9]+[,])+)[0-9]+$

猜你喜欢

转载自zyqwst.iteye.com/blog/2265817