我需要使用正则表达式匹配给定文本中的确切单词。
以下是代码,
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”我不想要。请帮忙。
答案 0 :(得分:7)
您可以使用正则表达式(?<!\S)(VO)(?!\S)
:
string pattern = String.Format("(?<!\\S){0}(?!\\S)", matchterm);
它将确保matchterm
前面有任何空白字符或行的开头,后跟任何空格字符或行尾