看得一个不错的正则教程包括字符串教程 C#字符串和正则表达式参考手册.pdf
正则所需要的命名空间是 using System.Text.RegularExpressions
它包含了8个类,用得最多是的Regex;
Regex不仅可以用来创建正则表达式,而且提供了许多有用的方法。
创建一个Regex对象
new Regex(string pattern)
new Regex(string pattern,RegexOptions options)
第一个参数是个字符串 第二个参数正则配置的选项 有以下一些选项
IgnoreCase的例子
string test = "Abcccccc"; Regex reg = new Regex("abc"); Console.WriteLine(reg.IsMatch(test)); //false Regex reg1 = new Regex("abc",RegexOptions.IgnoreCase); //不区分大小写 Console.WriteLine(reg1.IsMatch(test));//true
RightToLeft的例子
string test = "vvv123===456vvv"; Regex reg = new Regex("\\d+");// 123 从左到右 匹配连续数字 Console.WriteLine(reg.Match(test)); Regex reg1 = new Regex("\\d+",RegexOptions.RightToLeft); Console.WriteLine(reg1.Match(test));// 456 从右到左 匹配连续数字
MultiLinc的例子
StringBuilder input = new StringBuilder(); input.AppendLine("A bbbb A"); input.AppendLine("C bbbb C"); string pattern = @"^\w"; Console.WriteLine(input.ToString()); MatchCollection matchCol = Regex.Matches(input.ToString(), pattern, RegexOptions.Multiline); foreach (Match item in matchCol) { Console.WriteLine("结果:{0}", item.Value); }
IsMatch()
可以用来测试字符串,看他是否匹配正则表达式的模式.如果发现了一次匹配,就返回True.IsMatch有个静态方法重载
Regex.IsMatch(string str,string pattern);
string str = "abcbbbbbbbb"; string reg = @"^abc"; Console.WriteLine(Regex.IsMatch(str,reg ));//静态的重载方法 Regex pattern = new Regex("^abc"); Console.WriteLine(pattern.IsMatch(str)); //生成对象上的方法
Replace()
替换字符串一个匹配的模式,也有一个静态的重载方法,replace变体方法很多,我只记录我看到的
replace(string input ,string pattern,int count,int start) 第3个参数是总共替换几个,第4分参数是从字符串的什么位置开始替换
string str = "123456abc"; Regex pattern = new Regex(@"\d+"); Console.WriteLine(pattern.Replace(str,"6666")); string pattern1 = @"\d+"; Console.WriteLine(Regex.Replace(str,pattern1,"6666")); string str1 = "asd,sss,asd,asdf,jjjj,cccc"; Regex pattern2 = new Regex(@"\w+"); Console.WriteLine(pattern2.Replace(str1, "v5v5", 2)); Console.WriteLine(pattern2.Replace(str1, "v5v5", 2,8)); // Console.WriteLine(Regex.Replace(str1, @"\w+", "v5v5", 2)); 静态方法好像不行 会报错 哈哈
Match()
获得匹配的内容(只是一次的 MatchCollection可以获得所有的的匹配的集合)
生成的对象上的方法 的用法
reg.Match(string input,int start,int length)
第一个参数是要处理的字符串 第二哥参数开始的位置 第3个参数是需要匹配的长度。第2第3个参数可以不需要
静态方法 Regex.Match(string input , string pattern,RegexOptions options)
第3个参数可以不要
string str = "vchaha vcoo vclielie vbguale vfgg vckk"; Regex pattern = new Regex(@"vc\w*"); Match matchMode = pattern.Match(str); while (matchMode.Success) { Console.WriteLine(matchMode.Value); matchMode = matchMode.NextMatch(); } Console.WriteLine("-----------------------------------"); Match matchMode1 = Regex.Match(str, @"vc\w*"); while (matchMode1.Success) { Console.WriteLine(matchMode1.Value); matchMode1 = matchMode1.NextMatch(); }
Match类的一些方法
MatchCollection()
Regex.Matchs会返回MatchCollection类,这个集合包含了所有的Match的集合
string input = "hahaha 123xiaodi 55nihao 66chifanlema ccc333 ccc"; Regex pattern = new Regex(@"\d+[a-z]+",RegexOptions.IgnoreCase); MatchCollection matchsMade = pattern.Matches(input); foreach (Match item in matchsMade) { Console.WriteLine(item.Value); }
下载说明
☉本站所有源码和资源均由站长亲自测试-绝对保证都可以架设,运营!
☉如源码和资源有损坏或所有链接均不能下载,请告知管理员,
☉本站软件和源码大部分为站长独资,资源购买和收集,放心下载!
☉唯一站长QQ:1004003180 [人格担保-本站注重诚信!]
☉购买建议E-mail:1004003180@qq.com 源码收购 E-mail:1004003180@qq.com
☉本站文件解压密码 【文章内都自带解压密码,每个密码不同!】