题记:正则表达式看起来比较麻烦,但是真正用的时候发现并没有那么难,它是一个非常强大的工具。初学可以看下著名的:30分钟学会正则表达式,另外正则表达式验证工具有web版也有pc版,推荐RegexBudd,另外qq上有正则表达式群,里面有很多大牛,可以帮你解决一些你不会的正则表达式。本篇博客主要记录平时在项目中自己用到的不会的正则表达式。
1 匹配mac地址
代码是用js写的。要求匹配的mac地址类型是xxxx.xxxx.xxxx这种类型。
注意该匹配: ^用来匹配字符串的开始,$用来匹配字符串的结束。g是全局属性
var patternMac =/^\w{4}.\w{4}.\w{4}$/g; if(!patternMac.test(cm_select)){ //成功匹配到 return 0; } return 1;
2 要匹配的某个字段有两种不同的形式
要匹配的内容是:(想办法可以匹配到最后一列的数字,就是cnr这种形式)但是cnr的值有可能是xx也有可能是> 40这种形式,
用正则表达式:(?m)(\w{4}\.\w{4}\.\w{4}).+C3/0/0/U\d{1,2}\s+\D+\d+\s+\d+\.\d+\s+\w+\.\w+\s+(.*?)\s*$
其中{1,}表示出现一次或者多次,可以用+代替
其中*? 重复任意多次,尽量少重复;*重复零次或者更多次 $匹配字符串结束
前面的(?m):更改^和$的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。(在此模式下,$的精确含意是:匹配\n之前的位置以及字符串结束前的位置.)
Time source is NTP,23:46:02.659 PST Tue Nov 17 2015 MAC Address IP Address I/F MAC Prim ExPwr RxPwr cnr State Sid (dBmv) (dBmv) (dB) c8fb.26a8.1b40 --- C3/0/0/U4 w-online(pt) 215 3.0 3.00 34 c8fb.26a8.1b40 --- C3/0/0/U5 w-online(pt) 215 3.0 3.00 34 c8fb.26a8.1b40 --- C3/0/0/U6 w-online(pt) 215 3.0 3.00 34 c8fb.26a8.1b40 --- C3/0/0/U7 w-online(pt) 215 3.0 2.50 32 c8fb.26a8.1a02 5.152.4.124 C3/0/0/U0 w-online(pt) 1 3.0 2.50 36 c8fb.26a8.1a02 5.152.4.124 C3/0/0/U1 w-online(pt) 1 3.0 3.00 36 c8fb.26a8.1a02 5.152.4.124 C3/0/0/U2 w-online(pt) 1 3.0 2.00 40 c8fb.26a8.1a02 5.152.4.124 C3/0/0/U3 w-online(pt) 1 3.0 2.50 33 c8fb.26a8.0f42 4.222.5.222 C3/0/0/U0 w-online(pt) 645 3.0 3.00 > 40