環境:マイクロソフトのVisual Studio 2008のC#IndexOfメソッドexactvalueマッチ
は、私は、文字列で見つかった単語全体のインデックスを取得するにはどうすればよい
string dateStringsToValidate = "birthdatecake||birthdate||other||strings";
string testValue = "birthdate";
var result = dateStringsToValidate.IndexOf(testValue);
それは私がやった方法である必要はありません。たとえば、正規表現やその他の方法を使用する方がよいでしょうか?
更新: 単語は生年月日ではなく、生年月日です。それは一致を検索する必要はありませんが、インデックスは正しい単語を見つける必要があります。私はIndexOfが私が探しているものだとは思わない。不明な点がありましたら申し訳ありません。この
string dateStringsToValidate = "birthdatecake||birthdate||other||strings";
string testValue = "strings";
var result = WholeWordIndexOf(dateStringsToValidate, testValue);
// ...
public int WholeWordIndexOf(string source, string word, bool ignoreCase = false)
{
string testValue = "\\W?(" + word + ")\\W?";
var regex = new Regex(testValue, ignoreCase ?
RegexOptions.IgnoreCase :
RegexOptions.None);
var match = regex.Match(source);
return match.Captures.Count == 0 ? -1 : match.Groups[0].Index;
}
ため
Huh? – SLaks
彼は「完全な単語」のような何かを意味します。 – payo
正確なテストケースの最も簡単な解決策は、testValueを "birthdate |"に変更することですが、それよりも柔軟な解決策が必要だと思います。問題をもう少し正確に定義する必要があります。 –