Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Проверить вхождение слова


Автор: GrafF812 1.7.2010, 18:15
Здравствуйте мне нужно проверить вхождение слова в некоторую строку при этом не учитывать регистр. Насколько мне известно функция 
Код

String.Compare(string1, string2, true)

Сравнивает строки без учета регистра, а мне нужно вхождение слова. Подскажите как сделать?
P.S: желательно без ToUpper() и ToLower() 

Автор: wester 1.7.2010, 18:28
Код

var testStr = @"targetWo1rd,targetword,TargerWord";
            var match = Regex.Match(testStr, @"TARGETWORD", RegexOptions.IgnoreCase);
            var count = 0;
            while(match.Success)
            {
                count++;
                match = match.NextMatch();
            }
            Console.WriteLine(count);

вот, показывает колличество вхождений

Автор: Exai1e 1.7.2010, 18:31
GrafF812, 
Цитата

String..::.Compare - метод (String, String, Boolean)

Сравнивает два заданных объекта String (с учетом или без учета регистра) и возвращает целое число, которое показывает их относительное положение в порядке сортировки.

strA
    Тип: System..::.String
    Первая сравниваемая строка.

strB
    Тип: System..::.String
    Вторая сравниваемая строка.

ignoreCase
    Тип: System..::.Boolean
    Значение true, чтобы не учитывать регистр при сравнении; в противном случае — значение false.


http://msdn.microsoft.com/ru-ru/library/zkcaxw5y.aspx
то есть может и с учетом, и без учета

Код

            string srcString = "Hello World Man";
            bool res = srcString.Contains("World");

вот для проверки наличия слова в строке. Но метод учитывает регистр.
А чем не устраивает использование ToUpper() и ToLower() в String.Contains() ?

Добавлено через 47 секунд
wester, прикольно, про регэкспы даже мысли не было. Возьму на заметку

Автор: mihryak 1.7.2010, 20:18
Код

bool contains = string1.IndexOf(string2, StringComparison.InvariantCultureIgnoreCase) >= 0;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)