[英]How can I use C# contains method with the functionality of sql LIKE condition?
我希望能够像在SQL中使用类似运算符一样使用contains函数。 因此,当我从列表或诸如“ This is my string”之类的列表中调用.contains(%This %%%%%% is %% my%string %%)时,该函数将返回true。 我已经做了很多搜索,似乎很多人都希望使用此功能。 那么如何做到这一点,或者如何制作具有相同功能的类似自定义功能?
编辑谢谢您的快速回复。 我可以在自己的自定义Like函数中使用正则表达式。 以下是其他人想要使用类似于SQL Like的代码。 在此代码中,用户将输入数据库值,然后用。*替换该值中的空格以忽略值之间的任何内容,就像使用%替换SQL中的空格和值一样。 然后,我可以在搜索的字符串值testValue上使用.Like,以返回true或false,具体取决于单词或字符串中的内容。 我还添加了ToUpper来忽略这种情况。 // C#Like函数
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace sqllinqstuff
{
class Program
{
static void Main(string[] args)
{
string testValue = "Big RED Car";
string databaze = "big red CAR";
string databaze3 = databaze.Replace(" ", ".*");
databaze3 = databaze3.Replace(" ", ".*");
Console.WriteLine(databaze3);
Console.WriteLine(testValue.Like(databaze3));
Console.Read();
}
}
public static class CaseyStringExtension
{
public static bool Like(this string str,string value)
{
if (!string.IsNullOrEmpty(str))
{
Regex r = new Regex(value.ToUpper());
if (r.IsMatch(str.ToUpper()))
return true;
}
return false;
}
}
}
该测试的结果将是正确的。
使用Regex可以做到这一点。 语法与SQL LIKE查询不同,因此会有一些学习上的困难。 这是我经常引用的一个很好的教程网站 ,它可以帮助您入门。
翻译您询问的原始字符串,正则表达式搜索模式为
.*This.*is.*my.*string.*
一旦您精通它,就可以进行这样的搜索,这是我帮助创建的密码复杂性检查器
(?=^.{8,}$)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W_])(?=^.*[^\s].*$).*$
上面的搜索将查找一个字符串,该字符串至少包含8个字符,其中至少一个小写字母,一个大写字母,一个特殊字符以及没有空格字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.