1

変数kwに格納されたキーワードを長いテキストで検索し、キーワードが見つかった最初の 位置を見つけたい。以下のコードは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
}
4

2 に答える 2

4

できるよ

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

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

完全に一致させるには、次で表される境界を使用する必要があります\b

詳細はこちら

于 2013-01-09T14:00:52.530 に答える
1

には、必要なことだけを行うプロパティMatchがありIndexます。

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

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

インデックス - キャプチャされた部分文字列の最初の文字が見つかった元の文字列内の位置。(Capture から継承されます。)

于 2013-01-09T14:00:06.850 に答える