一个短语中的两个单词组.C#.
本文关键字:两个 单词组 短语 一个 | 更新日期: 2024-10-30 15:53:02
我怎么知道一个短语中存在多少组两个单词?
这是我的代码
var str = "word1 word2 word3 word4 word5";
Console.WriteLine(str.CountGroupWords(2));
Console.ReadKey();
结果应该是:2,因为word1和word2是一个组,word3和word4是另一个组,word5不属于任何组
是否存在解决此问题的正则表达式模式?
实际上你不需要正则表达式,你可以找到空格计数并除以 2:
var result = str.Count(x => x == ' ') / 2;
如果它包含多个空格,那么您可以尝试Split()
方法重载,该方法重载将StringSplitOptions
作为值为 RemoveEptryEntries
的第二个参数。则返回值不包括包含空字符串的数组元素:
var result = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Length / 2;
使用以下正则表达式,然后计算匹配数。
@"'S+'s+'S+"
'S+
匹配一个或多个非空格字符,其中's+
匹配一个或多个空格字符。
演示
String input = @"word1 word2 word3 word4 word5";
Regex rgx = new Regex(@"'S+'s+'S+");
int NumberOfTrues = rgx.Matches(input).Count;
Console.WriteLine(NumberOfTrues);
爱德酮
使用正则表达式解决方案。
将仅将单词与[a-zA-Z0-9_]
匹配 也忽略任何多个空格
例:
string para= "word1 word2 word3 word4 word5"; // <= include multiple splaces
Regex reg = new Regex(@"'w+");
Console.WriteLine((reg.Matches(para).Count) /2);
输出:
2