我需要使用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);
Run Code Online (Sandbox Code Playgroud)
在这里,我试图从文本中得到准确的"VO"(不是来自VOA或VO >>).问题是正确匹配,我也从"VO"获得"VO",这是我不想要的.请帮忙.
你可以使用正则表达式(?<!\S)(VO)(?!\S):
string pattern = String.Format("(?<!\\S){0}(?!\\S)", matchterm);
Run Code Online (Sandbox Code Playgroud)
它将确保matchterm前面有任何空格字符或行的开头,后跟任何空格字符或行尾