c# - 在 C# 中使用正则表达式获取单词的精确匹配

标签 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”,但我不知道我不想。请帮忙。

最佳答案

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

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

它将确保matchterm前面是任何空白字符或行首,后面是任何空白字符或行尾

关于c# - 在 C# 中使用正则表达式获取单词的精确匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38481810/

相关文章:

c# - 使用 NHibernate 性能问题获取大块数据

java - 如何使用 Jackson 将复杂的 Json 对象序列化为 HTTP Get 的 QueryString?

regex - Bash for 循环打印出意外的输出,这是为什么?

c# - 数据流的 block 设计受阻

c# - 如何在 LINQ WHERE 中防止 System.IndexOutOfRangeException?

c# - ViewModel 更新 - 保存前更改属性

c# - Xamarin 中相当于 Edittext.Setinputtype 的是什么

java - 使用 Tuckey URL Rewrite 时获取查询字符串

c# - 用于匹配短语中单个单词的正则表达式

javascript - 正则表达式匹配文本区域中的换行符