正 则 表 达 式 学 习
正则表达式在验证字符是否匹配,字符串替换,提取子字符串等各个方面应用都非常广泛
基础表达符号
符号 |
等价类 |
反向结构 |
等价反向类 |
\d (数字) |
[0-9] |
\D |
[^0-9] |
\w (字) |
[a-zA-Z0-9_] |
\W (非字) |
[^a-zA-Z0-9_] |
\s (空格) |
[\r\t\n\f] |
\S(非空格) |
[^\r\n\f] |
\b |
|
|
|
倍增器
符号 |
说明 |
+ |
加在字符后面,表示有一个或多个同样该字符 |
* |
加在字符后面,表示有0个或多个同样该字符 比如: 1* 表示多个1 |
? |
加在字符后面,表示有零次或一次同样该字符 |
{n,m} |
x{1,2} 表明重复在1次到2次的同样的字符 比如 xxxx匹配 xx匹配 x也匹配 |
{n,} |
表示n个或多于n个 举例: x{4,} xxxx匹配 xx不匹配 |
{n} |
强制定义连续n个匹配 举例: x{4} xxxx匹配 |
$ |
匹配结束 |
符号 |
说明 |
| |
交替,或者的意思 (a|b)* 任意多的a或b a|(b*) 一个a或者多个b |
[] |
单选 [0] 0匹配 |
() |
字串 (fdsafdfd) |
\ |
下一个匹配符的开始 |
提示:
在perl语言中,用//定义一个匹配项,而在c#中不需要。
两个匹配项之间没有分隔符
演示开始
邮件地址验证
\w+([.]\w+)*@\w+([.]\w+)*
\w+ 一个或多个字符
([.]\w+) 多个( .fjdajfda)的情况,fjdajfda乱举的例子
。。。。
邮编:\d{6}
匹配一个非零字符:[1-9]+\d*