在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
c#使用正则表达式要用到System.Text.RegularExprssions命名空间Regex类是用于匹配表达式: 通常Regex分为静态类和实例化俩种方式。那这俩种有什么区别呢,一般情况下使用静态的Regex的时候,.net会自动将正则表达式缓存起来,而在使用相同的时候正则的时候不会重新编译。一般情况下会缓存15个正则。而实例化一次Regex,则会重新编译正则。 Match代表获取的正则结果: Match.value:代表获取正则内容 Match.Index:代表内容的其实下标 Match.Length:代表内容长度 Match.Groups:代表正则所有捕获组,默认Group[0]为全部捕获内容,如果同一个捕获组有多个内容,则取最后一个 Match.Captures如果一个捕获组有多个内容,Group代表最后一个,而Captures代表这个捕获组的全部内容 MatchCollection 一个可迭代的正则集合。 Match.Success:判断是否匹配 Match.Next:如果匹配到了多个结果,返回下一个 Match.Result:替换模式,$1能够匹配到捕获组内容,对$1进行修饰如“--$1--”,则将匹配到的捕获组内容替换为--()--
public class Example { public static void Main() { string pattern = "--(.+?)--"; string replacement = "($1)"; string input = "He said--decisively--that the time--whatever time it was--had come."; foreach (Match match in Regex.Matches(input, pattern)) { string result = match.Result(replacement); Console.WriteLine(result); } } } // The example displays the following output: // (decisively) // (whatever time it was)
Group:表示单个捕获组的结果正则中使用。而在正则中使用?:可以避免捕获组。 Capture:表示单个成功子表达式捕获的结果。
using System; using System.Text.RegularExpressions; public class Test { public static void Main () { // Define a regular expression for repeated words. Regex rx = new Regex(@"\b(?<word>\w+)\s+(\k<word>)\b", RegexOptions.Compiled | RegexOptions.IgnoreCase); // Define a test string. string text = "The the quick brown fox fox jumps over the lazy dog dog."; // Find matches. MatchCollection matches = rx.Matches(text); // Report the number of matches found. Console.WriteLine("{0} matches found in:\n {1}", matches.Count, text); // Report on each match. foreach (Match match in matches) { GroupCollection groups = match.Groups; Console.WriteLine("'{0}' repeated at positions {1} and {2}", groups["word"].Value, groups[0].Index, groups[1].Index); } } } // The example produces the following output to the console: // 3 matches found in: // The the quick brown fox fox jumps over the lazy dog dog. // 'The' repeated at positions 0 and 4 // 'fox' repeated at positions 20 and 25 // 'dog' repeated at positions 50 and 54
|
请发表评论