正则表达式学习

来源:互联网 发布:模拟画像软件 编辑:程序博客网 时间:2024/06/05 13:35
1.元字符
(1)  .:匹配任何单个字符
(2) []:匹配括号中的任何一个字符
可以再括号中使用连字符“-”来指定子都的区间来简化表示,如a[0123456789]c等价于a[0-9]c
(3) ():将()之间括起来的表达式定义为“组”
(4)  |:将两个匹配条件进行逻辑“或”运算
(z|f)ood则匹配"zood"或"food"
(5)  *:匹配0至多个在它之前的子表达式,和通配符*没关系。
(6)  +:匹配前面的子表达式一次或多次
(7)  ?:匹配前面的子表达式0次或1次
(8) {n}:匹配确定的n次
例如,“e{2}” 不能匹配“bed”中的“e”,但是能匹配“seed”中的两个“e”。
(9) {n,}:至少匹配n次
例如,“e{2,}”不能匹配“bed”中的“e”,但能匹配 “seeeeeeeed”中的所有“e”。
(10){n,m}:至少匹配n次,至多匹配m次“e{1,3}”将匹配“seeeeeeeed”中的前三个“e”。 
(11)^:匹配一行的开始

(12)$:匹配行结束符


2.简写表达式(注意这些简写表达式是不考虑转义符的)
\d:代表一个数字,等同于[0-9]
\D:代表非数字,等同于[^0-9]
\s:代表换行符、Tab制表符等空白字符
\S:代表非空白字符
\w:匹配字母数字或下划线或汉字。能组成单词
\W:非\w
注:d:digital;s:space;w:word。大写就是非

3. .net中的正则表达式
(1)Regex.IsMatch("bbbbg","^b.*g$");
(2)正则表达式还可以用来提取字符串:
Match match=Regex.Match("age=30",@"^(.+)=(.+)$");
if(match.Success)
{
Console.WriteLine(match.Group[1].Value);
Console.WriteLine(match.Group[2].Value);
}
就可以通过Match的Groups属性来得到所有的提取元素,注意Groups的序号是从1开始的,0有特殊含义.
(3)字符串替换
string s=Regex.Replace("你aaa好aa哈哈a你","a+","A");
原创粉丝点击