c#:尝试使用正则表达式匹配短语

时间:2012-03-14 06:33:53

标签: c# regex

我尝试在C#中使用正则表达式来搜索多词短语。例如,我正在从SQL Server表中提取数据数据,我需要找到用户输入关键字搜索“Hello World”。这种匹配可以是记录的开头,记录的结尾或中间的任何地方。我可以匹配一个问题的单字关键字。

提前致谢。

找到我的答案:@“(\ b)+”+ strKeyword.txt + @“(\ b)+”; 至少它有效!

2 个答案:

答案 0 :(得分:6)

用于多字匹配使用 Match match = Regex.Match(text, @"(?:(hello world))") 但要解决您的问题,请按照@gabba发布的方法进行。

答案 1 :(得分:1)

  1. 如果使用直接sql查询,请使用

    select * from table where field like '%Hello World%'

  2. 如果您使用Linq,请使用包含方法

    var res = from rec in records where rec.field.Contains("Hello World") select rec

  3. 如果您有一个包含数据的集合,则可以匹配每个元素

    records.Where(x => System.Text.RegularExpressions.Regex.IsMatch(x.field, @"(?:(hello world))")).ToList();

  4. 如果您有字符串变量,请使用正则表达式:
    string variable = "bla bla Hello World woop";
    bool isExsistsReg = System.Text.RegularExpressions.Regex.IsMatch(variable, @"Hello World");