正则表达式

此生再无相见时 提交于 2019-12-30 09:10:51
1.正则表达式:E:\sxt_study\常用的正则表达式.txt
   作用:查找、分割、替换
   java:后台验证
   javascript:前台验证
2.语法规则:
   a.普通字符匹配:    a 就匹配a    1就匹配1   汉字 [\u4e00-\u9fa5]

   b.匹配特殊字符   转义字符 \ 加对应字符

   c.标准字符集合:注意区分大小写,大写是相反的意思
      \d:匹配数字 0-9                                         
     \w:字母或数字或下划线(A~Z,a~z,0~9)
     \s: 空格、制表符、换行符等空白字符其中任意一个
     . : 匹配所有单个字符
     \D:除数字之外的所有字符
     \W:除字母或数字或下划线之外的
2.字符集: []能够匹配方括号中任意一个字符
    ^5  以5开头的地方匹配   $以字符串结尾的地方匹配
    \b 匹配一个单词边界    [0-9]  要按小的放前面,[9-0]就匹配不到
    [12345]==[1-5]    匹配1-5之间的任意字符
    [^abc]  匹配abc之外的任一个字符
    [f-k]  匹配f-k之间的任意一个字符
    [^A-F0-3]  匹配A-F,0-3之外的任意一个字符
3.匹配次数:
   {n} :n代表匹配的次数    
   {m,n}:  至少m个,最多n个     先按n个匹配,不够再匹配少的     //贪婪匹配
   {m,n}? : 优先从m个数匹配             //尽可能少匹配  非贪婪模式
   {m,}   至少匹配m个
   ?  匹配0或者1次,相当于{0,1}
    +   至少出现1次,{1,}
    *    不出现或者无穷次   {0,}
    ^1[3579]\d{9}$       13等开头,11位结束:17123456789 正确        17123456789333错误
4.选择符和分组
   a | b    匹配a或者b   相当于[]
   ()  代表分组
   匹配对称的数:(\w)(\w)(\w)(\w)\4\3\2\1         例子:abcddcba                //先取四个字符,然后依次取第4组数据,3,2,1组数据
   匹配对应的数:  (123)(abc){2}(rt)\1\3              例子:123abcabcrt123rt     //先123再两组abc,rt,之后去第一组,最后取第三组
5.Eclipse上操作正则表达式:
    matches:整个匹配,只有整个字符序列完全匹配成功,才返回True,否则返回False。但如果前部分匹配成功,将移动下次匹配的位置。
    lookingAt:部分匹配,总是从第一个字符进行匹配,匹配成功了不再继续匹配,匹配失败了,也不继续匹配。 
    find:部分匹配,从当前位置开始匹配,找到一个匹配的子串,将移动下次匹配的位置。
    reset:给当前的Matcher对象配上个新的目标,目标是就该方法的参数;如果不给参数,reset会把Matcher设到当前字符串的开始处。
   1.String reg="\\d{2}\\w{3}";
   Pattern pattern=Pattern.compile(reg);//取Pattern   compile(reg,2)忽略大小写匹配
   Matcher matcher=pattern.matcher("11abc22abc33abc");//得到Macher
   System.out.println("-all-"+matcher.matches()+"-some-"+matcher.lookingAt());//进行全部匹配
   matcher.reset();    //lookingAt()已经将指针移动到22abc,所以需要重置,才能输出全部匹配串
   while(matcher.find()){
       System.out.println("-groupshow-"+matcher.group());   //11abc,22abc,33abc
   }
6.js使用正则表达式:
    //声明一个正则表达式  i:忽略大小写   g:进行全局匹配  ^:开始    $:结束
   var varRegex /\w{2}\d{2}/ig;  //1:部分匹配
   var varRegex /^\w{2}\d{2}$/ig;  //1:声明方式  建议使用    加^$全部匹配 
   var varRegex2 = new RegExp("((\\w{2})(\\d{2}))","ig");//2:声明方式     //分组
   var varRegex3 /\d{2}/ig;
   //方法1:test() 校验  返回是boolean 常用 
   var bool varRegex.test("aa11");
   //方法2:match() 匹配返回数组  常用
   var varArray "aa11bb22cc33".match(varRegex2);         aa11,bb11,cc33
   //方法3:exec(): 返回的是一个数组。该数组包含了匹配该模式的第一个子字符串以及该子字符串中匹配相关分组的字符串
   var varexecArray varRegex2.exec("aa11bb22cc33");     aa11,aa11,aa,11   注意分组
   //方法4:search():返回与正则表达式查找内容匹配的第一个子字符串的位置
   var varindex "aa11bb22cc33".search(varRegex3);         2
   //方法5 :split(regex):按照指定的模式切割字符串,返回一个数组
   var varSplitArray "aa11bb22cc33".split(varRegex3);       aabbcc
   //方法6 :replace():替换字符串
   var varStr "aa11bb22cc33".replace(varRegex3,"AA");     aaAAbbBBccCC


















易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!