0

私が探しているものは次のとおりです。

「キーワード」値があります...「キツネ」としましょう。「ザ・クイック・ブラウン・フォックス・ジャンプ・オーバー・ザ・レイジー・ドッグ」のような「メッセージ」値があります。理想的には、「...quick brown fox jumps over...」のように、オカレンスの両側に +X または -X の文字が返されます (後で省略記号を追加します)。

この問題に対する優れたパフォーマンスの高いアプローチは何ですか? メッセージの冒頭にキーワードが出現する可能性があることを懸念しており、これらのメッセージ評価のたびにキーワードが大きく変動することも望んでいません。言葉が途切れても構わない。

これを扱うときに頭に浮かぶいくつかのことは、string.contains を string.substring などと組み合わせて使用​​できるということです。それは遠いですか?

4

2 に答える 2

4

正規表現を使用できます

 ".{0,"+X+"}"+Regex.Escape(keyword)+".{0,"+X+"}"

したがって、キーワードがfoxで X が 5 の場合、正規表現は次のようになります。

 .{0,5}fox.{0,5}

この正規表現は、 のrightandleft側の0 ~ 5 文字に一致しfoxます。


あなたのコード

 String output=Regex.Match(input,regex).Value;
于 2013-07-05T15:54:56.527 に答える
2

メソッドを使用String.IndexOfして検索の場所を見つけ、戻り値と文字列の長さに基づいてオフセットを計算すると、Substringメソッドでキーワード +/- X 文字を取得できます。

于 2013-07-05T15:50:47.153 に答える