正则表达式回顾
---------以前根据一讲师总结:
1. .点表示任意单个字符(出\n);
2. a.b--->a2b a.b a*b都可以,但是acvb,不可以单个字符,a..b就可以了;
3.[]:a[axy]b--->aab,axy都可以,就是三者中的任意一个;
4.a[0-9]b:--->a0b;可以;
5. a[a-z0-9]b--->记住只能为1个;要么数字要么是字母;
6.a[^xyz],取反,只要不是这三者中的任何一种;
7,z|kk,z或是kk,而不是zk或是kk,|优先级比较低;当然可以改成(a|k)k;就行了;括号改变优先级;
8.[0-9a-zA-Z]和\w;\w还包含汉子;
9.abc*,标识*前面的一个字符出现任意次;若为abc的话:(abc)*;
x(abc)*y---》匹配的是xabcy xabcabcy都可以;
10. +限定符;至少出现一次;
11. ?:0-1次;
12.x(abc){5}y:标识x和y之间必须有5个abc; {n}一定出现n次;
13.{n,m}:标识 n-m次;>=5&&<=10
14.{n,}标识至少n次;
15.[^]取反,没有中括号,必须以什么开始,^abc:以abc开始;
16.xyz$:标识以xyz结尾;^xyz$:标识必须是xyz;
17.a\dz:a3z;\d==[0-9]
18: a\d{5}z ,a12345z;
19:\D:表示0-9除外,类似取反;
20: \s 空白格;看不到的字符都是空白符;
21: \S 非空白符;
22: \W 取反 去汉子和数字 字母;js内不支持汉子;
23 ^z|food$---->标识要么以z开头要么以food结尾;因为优先级;
24:z|food:标识只要字符串中出现z或者food就可以;
25:^(z|f)ood$:这个标识要么是zood要么是food;
if (Regex.IsMatch(Console.ReadLine(), patten))
string s=@"\dsdf";string s=@"\dsdf";
----正则表达式提取字符串:(只提取第一个)
Match ma=Regex.Match(msg,reg);
---输出的ma.value;
----ma.success 属性判断是否匹配成功;
-------------------------提取的是所有的;并逐一输出字符串;
MatchCollection mc = Regex.Matches("","");
foreach (Match mn in mc)
{
Console.WriteLine(mn.Value);
}
-------------------可以通过这种方式提取web页面的email地址;
提取组;比如邮箱。如果我们想知道用各种邮箱的种类个数;
给正则加()括号来提取组;一个字符串有三个()括号说明有三个组;
通过获取 matchcollection 遍历这个集合得到match,
match.Groups[1].value,match.Groups[2].value即可;切结match.Groups[0]标识的是全部的完整的匹配项;
---------正则表达式的贪婪模式:当根剧正则提取字符时,就是,
当一个字符满足要求,多个也满足要求 ,但是Regex.Match只能提取一个,结果它提取的是
最长的那个。这就是贪婪模式;(当出现矛盾时候)
字符串:hellow worlddddkkkkkkkkkkkkk 正则:“[a-z]+”,
得到的是 hellow 而不是后面的worldddkkkkk, match只取第一个;
------正则会尽可能的让自己都匹配上;
比如str="1111.111.1111。"; reg=".+。";和reg=".+"获取到的结果相同,但是是有区别的。
reg=".+。";中的句号会匹配字符串中的句号。
-----比如:str="11。 1。" reg=".+?。" 最终匹配的是 "11。" ,因为会让自己匹配更多。
---------序列化的对象必须标记上[serializable],父类也要标记;父类的字字段火属性也必须为可
序列化;@"^.+\\(.+)\.[a-zA-Z]+$"
-----------正则表达式提取路径中的文件名:
string url = @"..\..\guozes\dfsfng\gsdfuo.txt";
string reg = @"^.+\\(.+)\.[a-zA-Z]+$";
Match ma = Regex.Match(url, reg);
if (ma.Success)
{
string s = ma.Groups[1].Value;
Console.WriteLine(s);
}
----------------Regex.Replace("hah ahah aa",@"\s+","");标识把多个空格替换为一个空格;
----------------
专业名词UBB,html编辑器,发表论坛,为了防止用户写有害脚本,采用特殊格式;[/athha],标识图片的
路径格式,会有正则表达式进行翻译,匹配,转换为路径。
----------判断发表的帖子是否有敏感词;可以用正则表达式; "guo|ze|"