c# - 如何创建正则表达式以匹配不包含 where 子句的 linq 语句?

标签 c# regex linq

我有一个非常大的代码库,我想在其中找到所有不包含 where 原因的 linq 语句。

所以,假设我有一个这样的 linq 语句:

from t in dc.tablename where t.somefield="somevalue" select t

该语句不应包含在搜索结果中,但是,如果该语句如下所示:

from t in dc.tablename select t

这应该包含在搜索结果中。

到目前为止,我只设法创建了一个正则表达式来匹配包含 WHERE 的 linq 语句:

from(.|\n){1,}(where)(.|\n){1,}select

但是当我尝试这样做时:

from(.|\n){1,}^(where)(.|\n){1,}select

它不起作用。

最佳答案

你也许可以试试这个正则表达式:

from(?:(?!where|select)[\s\S])+select

(?:(?!where|select)[\s\S])+ 将匹配除 whereselect 之外的任何字符(包括换行符) 这样你也不必担心贪婪。

关于c# - 如何创建正则表达式以匹配不包含 where 子句的 linq 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22487974/

相关文章:

c# - Linq 选择 : Using a value from a list if available

c# - 如何修复面向玩家的翻转世界空间 UI?

c++ - 在 C/C++ 中验证 DNA

c# - 在原始字符串中获取函数参数值的最佳 C# 正则表达式模式?

javascript - JQuery UI 自动完成,按任意顺序查找所有单词

c# - SQL "IN"CLAUSE 性能问题

c# - C# 中的 Char * 编码

c# - 无法对 DataGrid 中的日期列进行排序

c# - 在 Dynamic LINQ to Entities 中使用 DateTime

c# - LINQ/IEnumerable Skip().Take() 效率与 "yield return"一起使用