Подтвердить что ты не робот

Сравнение строк С# - соответствие целого слова

У меня две строки:

string1  = "theater is small"; 
string2 =  "The small thing in the world";

Мне нужно проверить погоду, строка "the" присутствует в строках или нет.
Я могу использовать функцию contains, но может ли она выполнить целое словосочетание? то есть он не должен совпадать с "театром" строки1!

4b9b3361

Ответ 1

Простейшим решением является использование регулярных выражений и разделителя границ слова \b:

bool result = Regex.IsMatch(text, "\\bthe\\b");

или, если вы хотите найти несоответствующую капитализацию,

bool result = Regex.IsMatch(text, "\\bthe\\b", RegexOptions.IgnoreCase);

(using System.Text.RegularExpressons.)

В качестве альтернативы вы можете разделить текст на отдельные слова и найти результирующий массив. Тем не менее, это не всегда тривиально, потому что его недостаточно, чтобы разделить на белые пробелы; это игнорирует все знаки препинания и дает неправильные результаты. Решение состоит в том, чтобы снова использовать регулярные выражения, а именно Regex.Split.

Ответ 2

Используйте метод Regex.IsMatch, используя \bthe\b, \b представляет собой разделитель границы слова.

// false
bool string1Matched = Regex.IsMatch(string1, @"\bthe\b", RegexOptions.IgnoreCase); 

// true
bool string2Matched = Regex.IsMatch(string2, @"\bthe\b", RegexOptions.IgnoreCase); 

Ответ 3

str.Split().Contains(word);

или

char[] separators = { '\n', ',', '.', ' ' };    // add your own
str.Split(separators).Contains(word);

Ответ 4

Вместо этого вы можете использовать регулярное выражение. Таким образом, вы можете указать, что вам нужно только пространство или конец строки в конце.

Ответ 5

если вы добавите пробел в изучаемое слово