如何为匹配linq语句创建正则表达式NOT包含where子句?

时间:2014-03-18 18:28:37

标签: c# regex linq

我有一个非常大的代码库,其中想要查找不包含where cause的所有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

它不起作用。

1 个答案:

答案 0 :(得分:1)

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

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

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