查找字符串和匹配位置的完全匹配

时间:2013-01-09 13:56:10

标签: c# regex

我想在大字长文本中搜索存储在变量kw中的关键字,并找到找到关键字的 FIRST 位置。 以下代码不会与 EXACT 关键字匹配。

if (webData.IndexOf(kw, StringComparison.OrdinalIgnoreCase) != -1)
{
     found = true;
     int pos = webData.IndexOf(kw, StringComparison.OrdinalIgnoreCase); 
}

如何使用正则表达式?

Match match = Regex.Match(webData, @"^kw$", RegexOptions.IgnoreCase);

if (match.Success)
{
  int pos = //Matching position
}

2 个答案:

答案 0 :(得分:4)

你可以做到

Match match = Regex.Match(webData, @"\b"+Regex.Escape(kw)+@"\b", RegexOptions.IgnoreCase);

if (match.Success)
{
  int pos = match.Index;
}

对于完全匹配,您需要使用\b

表示的边界

更多信息here

答案 1 :(得分:1)

Match会有Index属性正在执行您想要的内容:

Match match = Regex.Match(webData, pattern, RegexOptions.IgnoreCase);

if (match.Success)
{
  int pos = match.Index;
}
  

索引 - 原始字符串中找到捕获的子字符串的第一个字符的位置。 (继承自Capture。)