类SQL的C版本

有没有办法在C#中搜索字符串中的模式

类似Sql之类的东西将非常有用

正则表达式支持所允许的一切,以及更多,但语法完全不同。但是,由于LIKE的规则非常简单(其中%表示零个或多个字符,\表示一个字符),而且LIKE参数和正则表达式都是用字符串表示的,因此我们可以创建一个正则表达式,该正则表达式采用LIKE参数(例如abc_ef%*usd)并将其转换为等价的正则表达式(例如,\Aabc.ef.*\*usd\z):

@“\A”+新正则表达式(@“\.\$\\\\\\\\\\\\\[\\(\\\\\\\\\\\\\\\\+\\?\”)。替换(toFind,ch=>@“\+ch)。替换(“,”)。替换(“,”)。替换(“,”)。替换(“%,“*”+”)“\z”

基于此,我们可以构建一个Like()方法:

公共静态类MyStringExtensions
{
公共静态bool-Like(此字符串用于搜索,字符串用于查找)
{
返回新的正则表达式(@“\A”+新正则表达式(@“\.\$\\\\\\\\\\\\[\\\(\\\\\\\\\\\\\\)\*\+\\\?\\\”)。替换(toFind,ch=>@“\+ch)。替换(“,”)。替换(“,”)。替换(“%,“*”+”)“\z”,RegexOptions.Singleline)。IsMatch(toSearch);
}
}

因此:

bool willBeTrue=“abcdefg”Like(“abcd_fg”);
bool willalsobeture=“abcdefg”。比如(“ab%f%”);
bool willBeFalse=“abcdefghi”。比如(“abcd_fg”);

发表评论