使用正则判断汉字和捕获内容
private void btn_GetCount_Click(object sender, EventArgs e) { int P_scalar = 0;//定义值类型变量并赋值为0 Regex P_regex = //创建正则表达式对象,用于判断字符是否为汉字 new Regex("^[\u4E00-\u9FA5]{0,}$"); for (int i = 0; i < txt_str.Text.Length; i++)//遍历字符串中每一个字符 { P_scalar = //如果检查的字符是汉字则计数器加1 P_regex.IsMatch(txt_str.Text[i]. ToString()) ? ++P_scalar : P_scalar; } txt_count.Text = P_scalar.ToString();//显示汉字数量 }
假如从一段文字中选出以a开头的单词,并显示其前面和后面的5个字符可以进行如下操作:
internal class Program { static void Main(string[] args) { Find2(); Console.ReadKey(); } 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)); } } static void Find1() { const 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."; const string pattern = @"\bn\S*\b"; MatchCollection matches = Regex.Matches(text, pattern, RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture); WriteMatches(text, matches); } static void Find2() { const 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."; const string pattern = @"\ba"; MatchCollection matches = Regex.Matches(text, pattern, RegexOptions.IgnoreCase); WriteMatches(text, matches); } }
结果如下图:
浮躁的人容易问:我到底该学什么;----别问,学就对了; 浮躁的人容易问:JS有钱途吗;----建议你去抢银行; 浮躁的人容易说:我要中文版!我英文不行!----不行?学呀! 浮躁的人分两种:只观望而不学的人;只学而不坚持的人; 浮躁的人永远不是一个高手。