我当前正在尝试检查用户输入的字符串中是否包含特定单词。我正在使用正则表达式,并具有以下代码:
-9.944117370034156e-05
x_1 -9.944117370034156e-05
x_2 3.4085428032616
以上代码中'found'的值为true,因为基于'pattern'在输入'oaaawaala'中找到了单词'Owl'。
但是,如果我将输入顺序更改为“ alaawaaao”,或者以其他方式对输入进行加扰,则“ found”的值将为false,因为该模式不再匹配。我需要的解决方案是,在任何给定的字符串(加扰或未加扰)中都应找到“单词”。有关如何执行此操作的任何建议。
谢谢
答案 0 :(得分:1)
为什么不仅仅检查input
是否包含word
中的所有字符?
class Program
{
static void Main(string[] args)
{
string input = @"oaaawaala";
string word = "Owl";
var found = word.ToCharArray().Select(c => char.ToUpper(c)).Distinct().All(c => input.ToUpper().Contains(c));
Console.WriteLine("Found: {0}", found);
}
}
答案 1 :(得分:0)
对于正则表达式解决方案,请尝试以下操作:
string input = @"oaaawaala";
string word = "Owl";
if (Regex.IsMatch(input, Regex.Escape(word), RegexOptions.IgnoreCase))
{
MatchCollection matches = Regex.Matches(input, Regex.Escape(word), RegexOptions.IgnoreCase);
Console.WriteLine("Found: {0}", matches[0].Groups[0].Value);
}