Найти точное слово в строке - PullRequest
3 голосов
/ 09 августа 2011

Как узнать, содержит ли строка точное слово, которое я ищу?

пример: «это мой текст»; слово ищет: «текст»; найдено: да.

пример: «это мои тексты»; слово ищет: «текст»; найдено: нет.

  • это внутри запроса linq to entity, поэтому регулярное выражение не будет работать?

Edit:

Это более или менее то, что я делаю сейчас, и я хочу заменить его функцией, которая возвращает только тогда, когда это точное совпадение.

    using (Model.Manager ctx = new Model.Manager())
    {
        var result = from p in ctx.Companies where p.Name.Contains(workLookingFor) select p;        
    }

Решение до сих пор:

Я мог бы использовать .Contains () в моей БД и использовать RegEx для результатов, извлеченных из БД. Поскольку точные совпадения всегда находятся внутри более широких результатов из .Contains () (который мне все равно нужен), это может быть хорошим решением

Ответы [ 3 ]

2 голосов
/ 09 августа 2011

Это работает для меня. Это не идеально, но может помочь.

 public static  bool matchWholeWord(string test, string search)
        {
            var index = test.IndexOf(search);
            if (index == -1)
                return false;

            var after = index + search.Length;
            if (after == test.Length)
                return true;

            return !char.IsLetterOrDigit(test[after]);
        }

в вашем коде:

using (Model.Manager ctx = new Model.Manager())
    {
        var result = from p in ctx.Companies 
        where matchWholeWord(p.Name, workLookingFor) 
        select p;        
    }
1 голос
/ 09 августа 2011

Легкого пути нет.У вас есть три варианта

0 голосов
/ 09 августа 2011

Мне пришлось использовать что-то подобное, чтобы реализовать алгоритм поиска с использованием LINQ.Я нашел полезной статью MSDN о сочетании LINQ и регулярных выражений вместе с регулярным выражением, в котором для идентификации пробела использовался пробел.Создав регулярное выражение с моими параметрами поиска и объединив его в выражение LINQ, я получил то, что мне было нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...