c#正则表达式匹配字符串中的精确单词

时间:2016-03-29 15:26:05

标签: c# regex

我有一串文字

string a = "Not Approved;Review Not Required;Terminated;Draft";
string input = "Approved";

并且我的输入是“已批准”,它仍然返回我的假(这是我想要的),但如果我的输入是“已终止”,它仍然会返回我的错误(这是错误的)。

Regex.Match(a, input + @"^\b").Success

Regex.match(a,@"\b" + input + @"\b".Success

两者都不像我正在寻找的那样工作

1 个答案:

答案 0 :(得分:3)

为什么不稍微修改正则表达式?检查';'不是'\b'

  string a = "Not Approved;Review Not Required;Terminated;Draft";
  string input = "Approved";

  // do not forget to Escape for arbitrary input
  // true for "Terminated", false for "Approved"
  Boolean result = Regex.IsMatch(a, @"(^|;)" + Regex.Escape(input) + @"($|;)");