VS2013(其他版本亦可)
符号:'[]'。我们知道,一个正则表达式表示一类字符串,一个字符串是由若干个字符组成,所以字符和字符的集合时正则表达式最基础的东西。正则表达式中字符的表示方法和我们常规的表示方法完全相同,'a'就表示'a'、'1'就表示'1'等等。字符的集合用'[字符表]'表示,例如'[abcdefghijklmnopqrstuvwxyz]'表示所有的小写字母,准确的说是所有至少包含一个小写字母的一类字符串。
显然,在书写正则表达式时不可能每次都用中括号表示一个完整的字符集,这将会使正则表达式显的非常臃肿,为此,需要用简短的名字来代指一些常用的字符集,如:\d 0-9的数字,即'[]'或'[0-9]'。\D \d的补集(以所以字符为全集),所有非数字的字符,即'[^]'。\w 单词字符,指大小写字母、0-9的数字、下划线,即'[a-z0-9A-Z_]'。\W \w的补集,非单词符号。\s 空白字符,包括换行符\n、回车符\r、制表符\t、垂直制表符\v、换页符\f。\S \s的补集,非空白。. 除换行符\n外的任意字符。[…] 匹配[]内所列出的所有字符。[^…] 匹配非[]内所列出的字符。
符号:'{}'。与使用工具创造工具一样,我们也可以使用已有的正则表达式创造更多的正则表达式,只需要引入一些规则就可以了,如下:{n},匹配前面的字符n次,如'a{2}',与'aa'等价。{n,},匹配前面的字符n次或多于n次,如'a{1,}',表示至少含有1个a。{n,m},匹配前面的字符n到m次,如'a{1,10}',表示至少含有1个、至多含有10个a。?,匹配前面的字符0或1次,为了简化,代指'{0,1}'。+,匹配前面的字符1次或多于1次,为了简化,代指'{1,}'。* ,匹配前面的字符0次或多于0次,为了简化,代指'{0,}'。
符号:'|',表示或。如'\d|\D',表示数字或者非数字,换种说法就是表示全集。由此可见,不同正则表达式可能表达一样的意义。
定位字符。使用定为字符,我们可以表示字符串“两边”的特征。^,表示其后的字符必须位于字符串的开始处,如,'^-\d+'表示负整数。$,表示其前面的字符必须位于字符串的结束处,如,'[^;]*;$'表示所有以';'结束的语句。\b,匹配一个单词的边界。\B,匹配一个非单词的边界。
转义字符。对于被“内置”的字符可以使用转义字符来表示,如:\/ 、\?、\-、\+、\.、\=分别表示/、?、-、+、.。
了解这么多正则表达式的知识已经基本可以了,更多的关于正则表达式的资料请见参考资料。
正则表达式难以理解和记忆,应当从不同的角度理解和记忆,只要记住最基本的东西,需要时查找资料,一步步分析就可以了。