首页 > 解决方案 > 连续查找字符串中单词的重复项

问题描述

dictNum2 = {{"eins", 1}, {"zwei", 2}, {"drei", 3} ...};
foreach (KeyValuePair<string, int> dsa in dictNum2)
            {
                Regex regexTemp = new Regex(dsa.Key);
                MatchCollection matchTemp = regexTemp.Matches(stringInput);
            if ((stringInput.Contains(dsa.Key) && dsa.Value < 10))
                {
                    var indexList = Regex.Matches(stringInput, dsa.Key).Cast<Match>().Select(m => m.Index).ToList();
                    indexList.AddRange(indexList);
                    for(int i = 1; i < indexList.Count; i++)
                    {
                        if(indexList[i] == indexList[i-1] + dsa.Key.Length)
                        {
                            inaRow++;
                        }
                    }
                }
           }

这个想法是:需要在一个字符串中找到彼此跟随的单词数,该字符串包含在字典中。我有一段代码适用于“zweizweizwei”之类的东西,但输入可能是这样的字符串:

"zweihundert zweidrei undzwanzig" 或 "zweiund dreieins "

有办法解决吗?谢谢

标签: c#regexstring

解决方案


正则表达式中使用单词边界

Regex regexTemp = new Regex($"\b{dsa.Key}\b")

推荐阅读