多语言展示
当前在线:1453今日阅读:60今日分享:41

C#正则表达式基础:[1]基础知识

本文介绍正则表达式在基础知识,并使用C#进行实践举例。
工具/原料

VS2013(其他版本亦可)

基础语法
1

符号:'[]'。我们知道,一个正则表达式表示一类字符串,一个字符串是由若干个字符组成,所以字符和字符的集合时正则表达式最基础的东西。正则表达式中字符的表示方法和我们常规的表示方法完全相同,'a'就表示'a'、'1'就表示'1'等等。字符的集合用'[字符表]'表示,例如'[abcdefghijklmnopqrstuvwxyz]'表示所有的小写字母,准确的说是所有至少包含一个小写字母的一类字符串。

2

显然,在书写正则表达式时不可能每次都用中括号表示一个完整的字符集,这将会使正则表达式显的非常臃肿,为此,需要用简短的名字来代指一些常用的字符集,如:\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外的任意字符。[…]  匹配[]内所列出的所有字符。[^…]  匹配非[]内所列出的字符。

3

符号:'{}'。与使用工具创造工具一样,我们也可以使用已有的正则表达式创造更多的正则表达式,只需要引入一些规则就可以了,如下:{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,}'。

4

符号:'|',表示或。如'\d|\D',表示数字或者非数字,换种说法就是表示全集。由此可见,不同正则表达式可能表达一样的意义。

5

定位字符。使用定为字符,我们可以表示字符串“两边”的特征。^,表示其后的字符必须位于字符串的开始处,如,'^-\d+'表示负整数。$,表示其前面的字符必须位于字符串的结束处,如,'[^;]*;$'表示所有以';'结束的语句。\b,匹配一个单词的边界。\B,匹配一个非单词的边界。

6

转义字符。对于被“内置”的字符可以使用转义字符来表示,如:\/ 、\?、\-、\+、\.、\=分别表示/、?、-、+、.。

注意事项
1

了解这么多正则表达式的知识已经基本可以了,更多的关于正则表达式的资料请见参考资料。

2

正则表达式难以理解和记忆,应当从不同的角度理解和记忆,只要记住最基本的东西,需要时查找资料,一步步分析就可以了。

推荐信息