using System; using System.Text.RegularExpressions; namespace Wrox.ProCSharp.RegularExpressionPlayaround { class MainEntryPoint { static void Main() { Find1(); Console.ReadLine(); } static void Find1() { string text = @"XML has made a major impact in almost every aspect of software development. Designed as an open, extensible, self-describing language, it has become the standard for data and document delivery on the web. The panoply of XML-related technologies continues to develop at breakneck speed, to enable validation, navigation, transformation, linking, querying, description, and messaging of data."; string pattern = @"\bn\S*ion\b"; MatchCollection matches = Regex.Matches(text, pattern, RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace | RegexOptions.ExplicitCapture); WriteMatches(text, matches); } static void Find2() { string text = @"XML has made a major impact in almost every aspect of software development. Designed as an open, extensible, self-describing language, it has become the standard for data and document delivery on the web. The panoply of XML-related technologies continues to develop at breakneck speed, to enable validation, navigation, transformation, linking, querying, description, and messaging of data."; string pattern = @"\bn"; MatchCollection matches = Regex.Matches(text, pattern, RegexOptions.IgnoreCase); WriteMatches(text, matches); } static void WriteMatches(string text, MatchCollection matches) { Console.WriteLine("Original text was: \n\n" + text + "\n"); Console.WriteLine("No. of matches: " + matches.Count); foreach (Match nextMatch in matches) { int Index = nextMatch.Index; string result = nextMatch.ToString(); int charsBefore = (Index < 5) ? Index : 5; int fromEnd = text.Length - Index - result.Length; int charsAfter = (fromEnd < 5) ? fromEnd : 5; int charsToDisplay = charsBefore + charsAfter + result.Length; Console.WriteLine("Index: {0}, \tString: {1}, \t{2}", Index, result, text.Substring(Index - charsBefore, charsToDisplay)); } } } } using System; using System.Text; namespace Wrox.ProCSharp.StringEncoder { class MainEntryPoint { static void Main(string[] args) { string greetingText = "Hello from all the guys at Wrox Press. "; greetingText += "We do hope you enjoy this book as much as we enjoyed writing it."; for(int i = (int)'z'; i>=(int)'a' ; i--) { char Old = (char)i; char New = (char)(i+1); greetingText = greetingText.Replace(Old, New); } for(int i = (int)'Z'; i>=(int)'A' ; i--) { char Old = (char)i; char New = (char)(i+1); greetingText = greetingText.Replace(Old, New); } Console.WriteLine("Encoded:\n" + greetingText); StringBuilder greetingBuilder = new StringBuilder("Hello from all the guys at Wrox Press. ", 150); greetingBuilder.Append("We do hope you enjoy this book as much as we enjoyed writing it"); for(int i = (int)'z'; i>=(int)'a' ; i--) { char Old = (char)i; char New = (char)(i+1); greetingBuilder = greetingBuilder.Replace(Old, New); } for(int i = (int)'Z'; i>=(int)'A' ; i--) { char Old = (char)i; char New = (char)(i+1); greetingBuilder = greetingBuilder.Replace(Old, New); } Console.WriteLine("Encoded:\n" + greetingBuilder.ToString()); } } } 
|