有没有办法在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”);