部分文字列を文字列からどのように分割できますか
私がひもを持っているように
String mainString="///Trade Time///Trade Number///Amount Rs.///";
今私は他の文字列を持っています
String subString="Amount"
次に、他の方法ではなく、subStringという名前の2番目の文字列を使用して部分文字列Amount Rs.
を抽出しますが、最初のように2つのパラメータを使用して抽出する必要があります。 2番目は次の文字列///までです。
まず、部分文字列のインデックスを取得します。
int startIndex = mainString.IndexOf(subString);
次に、次のスラッシュのインデックスを取得します。
int endIndex = mainString.IndexOf("///", startIndex);
次に、必要な部分文字列を取得できます。
string amountString = mainString.Substring(startIndex, endIndex - startIndex);
これは私が信じるあなたの問題を解決するはずです:
_mainString.substring(mainString.IndexOf("Amount Rs. "), "///")
_
ここで、mainString.IndexOf("Amount Rs. ")
は開始インデックス&_"///"
_は終了インデックスです。
string str = Regex.Match("///(?<String>[^/]*?" + subString + "[^/]*?)///").Groups["String"].Value;
String.Format
を使用する必要がありますが、@文字列で{x}
を正確に使用すると、覚えていない正規表現が使用されます({}
を2倍にする必要がありますか?)
N.B: これは、/
を期待していないことを前提としているため、少し改善される可能性があります。
@Guffaの答えへの賛辞として、あなたはそれから拡張メソッドを作ることができます:
注:提供されたインデックスが文字列の範囲内にあることを確認するための検証はありません。
public static class StringExtensions
{
public static string SubstringBetweenIndexes(string value, int startIndex, int endIndex)
{
return value.Substring(startIndex, endIndex - startIndex);
}
}