2012-03-14 79 views
1

我試圖在C#中使用正則表達式來搜索多詞短語。例如,我目前正在從SQL Server表中提取數據數據,並且需要找到用戶輸入關鍵字搜索「Hello World」。這場比賽可能是在記錄的開始,記錄的結尾或中間的任何地方。我可以匹配單個單詞關鍵字wothout一個問題。c#:嘗試使用正則表達式來匹配短語

在此先感謝。

找到我的答案:@「(\ b)+」+ strKeyword.txt + @「(\ b)+」; 至少它工作!

+3

請向我們顯示您的代碼,我們會幫您解決它。 – dasblinkenlight 2012-03-14 06:37:10

回答

1
  1. 如果如果你使用使用直接的SQL查詢中使用

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

  2. LINQ的使用contains方法

    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");

+0

好吧,我們有點落後於時代,我們正在使用Visual Studio 2005,.Net 2.0,SQL Server 2005,並且沒有Linq – user1268235 2012-03-14 13:54:37

+0

此外,搜索文本在變量中: – user1268235 2012-03-14 14:05:33

6

對於多字匹配使用 Match match = Regex.Match(text, @"(?:(hello world))") 但解決您的問題遵循@gabba已發佈的方法。

+0

你的正則表達式有兩個無用的組。 '@「hello World」'完全一樣。 – stema 2012-03-14 07:46:58