C# 正则表达式匹配关键字

C# Regex pattern to match keyword

关于正则表达式模式的问题。我有一个字符串输入,我想将其与我的字符串数组相匹配。输入不是恒定的。例如我的测试输入是 "test123MakeLunch23" 和 "testMakeLunch(1)" 我有一个字符串数组。示例 "MakeLunch" 应该与我的测试输入匹配,而 "DeliverLunch" 应该是错误的。我很难完成这项工作。

 string input = "test123MakeLunch23";
 List<string> lstKeywords = new List<string>() { "MakeLunch", "DeliverLunch"};
 foreach (var keyword in lstKeywords)
 {
   // this is not right
   string pattern = $@"^([a-zA-Z0-9{keyword}a-zA-Z0-9)$";

   // on MakeLunch should return true only
   bool ismatch = Regex.IsMatch(input,pattern,RegexOptions.IgnoreCase);
 }

您能否对解决方案添加一些解释。谢谢。

您只需要测试您输入的字符串中是否存在关键字。你不需要正则表达式:

string input = "test123MakeLunch23";
string keyword = "MakeLunch";
bool is_match = input.IndexOf(keyword) > -1;