Как проверить, содержит ли строка только слова в массиве?Как знать, что строка содержит только определенные слова
я мог вернуться true
, если строка содержит любое слово в массиве с помощью Contains()
public bool ValidateString(string strCondition)
{
List<string> words = new List<string>() { "true", "false", "&&", "||", " " };
foreach (string word in words)
{
if(strCondition.Contains(word))
return true;
}
return false;
}
Но как я могу вернуть false
если строка, отправить в качестве параметра (strCondition
) содержит любое слово или алфавит или номер или т.д. и т.д., кроме true
, false
, &&
, ||
, ? Есть ли какой-либо вариант в
Regex
или может кто-нибудь придумать хорошее решение?
EDIT
Следующая должен вернуть истинный
true && false || false && false
true || false && false && false
И ниже должен возвращать ложь, поскольку она содержит слово/число/специальные символы, кроме true
, false
, &&
, ||
,
true & false || false < false
true >> false && false && false
true and false 123 false && false
true || false && false xyz false
так что вы хотите, чтобы проверить, все 'words' в' strCondition'? – Sayse
Итак, вы не хотите искать _words_, но подстроки? –
Ваш код уже вернет 'false', если ни одно из значений в' words' в 'strCondition' –