在C#中使用Regex获取单词的完全匹配

时间:2016-07-20 12:49:26

标签: c# regex

我需要使用正则表达式匹配给定文本中的确切单词。

以下是代码,

var matchterm = "VO";
var pattern = "\\b(" + matchterm + ")\\b";
var text = "FOR OVER FIFTY YEARS WATER FUTURE VOA VO>> VO";
var regx = new Regex(pattern,RegexOptions.IgnoreCase);
var collection = regx.Matches(text);

在这里,我试图从文本中获得准确的“VO”(不是来自VOA或VO>>)。问题是正确的匹配,我也从“VO>>”得到“VO”我不想要。请帮忙。

1 个答案:

答案 0 :(得分:7)

您可以使用正则表达式(?<!\S)(VO)(?!\S)

string pattern = String.Format("(?<!\\S){0}(?!\\S)", matchterm);

它将确保matchterm前面有任何空白字符或行的开头,后跟任何空格字符或行尾