正则表达式应用系列二(语法)

时间:2022-09-07 19:44:29

  正则的语法看似挺多,但每个语法点走一遍,知道什么时候用它,就基本掌握,剩下的就是经常使用,否则就感到生疏。 

  一。元字符。它就是正则的关键字。就这么几个:[{(\^$|)?*.+看一个正则表达什么意思,首先找这些关键字,这样很快能够分出层次来,就比较容易理解了。RegexBuddy工具的Create就是这样分析的。表达实际的字符时,只需加个转义\就行了。例如“."用”\.“表示。

  二。特殊字符。也需要转义。表示一个字母时,可以用它本身,也可以用它的ASCII码或Unicode来表示。例如b,可以用b本身表示,也可以用ASCII:\142(\八进制),也可以用\x62(\x十六进制).也可以用Unicode:\u0062.这些特殊字符用到的比较少,理解就行了。

  三。预定义特殊字符。很重要,经常用! \t\n\r\f\b\0,分别是制表符、换行符、回车符、换页符、回退符、空字符。

  四。简单模式:  

  [ ]它表示括号类的字符任意一个匹配均可。如[abc]代表a,b,c任意一个匹配都可以.

  [^ ]表示除了括号内^后面的字符外,均匹配。如[^abc]代表除了括号内abc以外的任意字符均可。

  [ - ]表示一个范围内的字符匹配。例如[0-9],[a-z]表示从0到9的数字,a-z的所有字母。

  五。预定义模式。.\d\D\s\S\w\W。\d数字,\s是空白字符,\w是字母数字下划线。大写就就是非数字,非空白。。。

  六。量词。就是指定模式出现的次数。有两种判断方向:从左至右累加字符来判断(惰性量词),从右至左舍弃字符来判断(贪婪量词)。

   贪婪量词。?*+{n}{n,m}{n,}代表次数分别是:num<=1,num>=0,num>=1,num=n,n<=num<=m,num>=n

   惰性量词。在贪婪量词后面紧跟一个"?",例如{n,}?

   支配量词。把整个字符串拿出来匹配。必须每个字符都一样。紧跟"+",例如{n,}+

  总结:以上只是正则最基本的语法。它们已经可以比较简单的东西,还有更强大的匹配模式,它们才是我们日常经常用到的,语法规则很简单,难在灵活运用,将在下一篇介绍。