c# - Regex.Match 在 C# 中的双辅音

标签 c# regex

我有一个包含很多单词的列表。我需要的是找到所有以“ing”、“ed”、“ied”结尾且前面带有单个元音和双辅音的单词: 应匹配词:begged、slamming、zagging。不匹配帮助(“lp”-不是双辅音)

\w*[^aoyie][aoyie]([^aoyie])\1(ed|ing|ied)

它在 RegexPal.com 上工作,但在 C# 中不工作(不匹配任何单词,返回列表中的 0 个单词)

我的代码:

List<Book_to_Word> allWords = (from f in db2.Book_to_Words.AsEnumerable() select f).ToList();

List<Book_to_Word> wordsNOTExist = (from f in allWords
                        where Regex.IsMatch(f.WordStr, @"^(\w*[^aoyie]+[aoyie]([^aoyie])(ed|ing|ied))$")
                                    select f).ToList();

当我不使用\1 时有效。但返回单辅音单词。

最佳答案

尽量放宽条件:

@"^[a-z]*[aoyie]([^aoyie])\1(ed|ing|ied)$"

您当前的正则表达式要求单词在双辅音和后缀之前至少有 3 个字符。所以“乞求”和“zagging”是不匹配的。

不过,在组中看到“y”而“u”不见了(例如“抢劫”)有点奇怪。你可能想仔细检查一下。我对“ied”之前的双辅音有点怀疑,但我会把它留在那里。

关于c# - Regex.Match 在 C# 中的双辅音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11222891/

相关文章:

c# - 没有装箱的泛型方法中的原始类型转换

c# - 从网站域名中删除 azurewebsites

c# - 显式事件添加/删除,误解了吗?

C# 在相应的输入类型中返回零

c# - 如何在 ASP.NET Core 的 HTTP GET 请求中使用 ValidateAntiForgeryToken?

regex - ngPattern 指令的问题

用于查找 div 标签的正则表达式

regex - Linux grep 命令用多个选项匹配多个模式

c# - 使用正则表达式匹配字符串 c#

python - Pandas系列矢量化文本处理