我尝试在C#中使用正则表达式来搜索多词短语。例如,我正在从SQL Server表中提取数据数据,我需要找到用户输入关键字搜索“Hello World”。这种匹配可以是记录的开头,记录的结尾或中间的任何地方。我可以匹配一个问题的单字关键字。
提前致谢。
找到我的答案:@“(\ b)+”+ strKeyword.txt + @“(\ b)+”; 至少它有效!
答案 0 :(得分:6)
用于多字匹配使用
Match match = Regex.Match(text, @"(?:(hello world))")
但要解决您的问题,请按照@gabba发布的方法进行。
答案 1 :(得分:1)
如果使用直接sql查询,请使用
select * from table where field like '%Hello World%'
如果您使用Linq,请使用包含方法
var res = from rec in records where rec.field.Contains("Hello World") select rec
如果您有一个包含数据的集合,则可以匹配每个元素
records.Where(x => System.Text.RegularExpressions.Regex.IsMatch(x.field, @"(?:(hello world))")).ToList();
如果您有字符串变量,请使用正则表达式:
string variable = "bla bla Hello World woop";
bool isExsistsReg = System.Text.RegularExpressions.Regex.IsMatch(variable, @"Hello World");