2016-09-09 26 views
-3

により、文字列の残りの部分を読む:私はこのような文字列を持っているサブ

string mystring = "No : 123 - Date : 07/06/2009 - Explanation : Some explanation text" 

私は、この文字列からいくつかの説明テキストを取得したいです。 の後に残りの文字列を取得する方法説明: in C#?または、その部分文字列を取得するより良い方法はありますか?ありがとう。

+0

そして、あなたもの他の答えのような勧告は、この種の提案理由 –

+1

まず、これを行うための複数の方法があるかもしれませんあなたはどのような実装 –

+0

を行う前に、一般化を行う必要があり、私はstring.IndexOf 'のようなもののために行くだろう( " - 説明:") 'と一緒に' string.Substring() 'を呼び出します。 –

答えて

6

ここでRegexアプローチをお勧めします。:文字を説明文字列に含めることができる他の投稿から問題を削除します。

この例では、文字列の末尾に常に「説明:」タグがあり、「説明:」テキストがの内部に表示されない限り、問題が解決されます。説明テキスト。

var mystring = "No : 123 - Date : 07/06/2009 - Explanation : Some explanation text" 
var regex = new Regex("(.*)Explanation :(.*)"); 
var match = regex.Match(mystring); 

if (match.Success) 
{ 
    var explanation = match.Groups[match.Groups.Count - 1].Value; 
} 
+0

は動作しません。空の文字列を返します! :(((( –

+0

私はインデックスとして 'match.Groups.Count - 1'を使用しなければなりません)私は答えを更新しました –

+1

Works!https://dotnetfiddle.net/99g939 -regexバージョンはここにありますので、私は何も利点は見ません。例えばhttps://dotnetfiddle.net/IodBGF) –

3
string mystring = "No : 123 - Date : 07/06/2009 - Explanation : Some explanation text"; 
string explSection = mystring.Substring(mystring.IndexOf("Explanation :")); 
string explText = string.Join("",explSection.Split(':').Skip(1).ToArray()); 

上記のコードは、必要なテキストを提供します。

+2

'何かの説明文章'に ':'が含まれているとどうでしょうか?(ヒント:分割されています) –

+0

@UweKeim myあなたのケースをカバーする答え –

+0

[今すぐうまくいく](https://dotnetfiddle.net/DbovmR)本当に 'サブリング'と 'IndexOf'が2回必要ですか?[これについてどうぞ](https:// dotnetfiddle .net/IodBGF)? –

-1
String mystring = "No : 123 - Date : 07/06/2009 - Explanation : Some explanation text"; 
string[] substrngs = mystring.Split(':'); 
string desiredString = substrngs[substrngs.Count - 1]; 

のstring.Split(char型のDELIM)は、あなたの区切り文字で分割することにより、検出されたすべての文字列を[]の文字列を返します ':'。 次に、文字列[]のCountプロパティを使用して、Split()によって検出された文字列の数を調べ、解析結果に基づいて最後の要素を取得します。

+0

'Some description text'に': 'が含まれているとどうでしょうか?(ヒント:これも分割されています) –

+0

彼の形式は私が派生できるものです。与えられた状況でのみ答えることができます。解析は無限に実行できます。入力を構文解析する方法は、入力の形式と入力からの欲求に依存します。 –

+0

ポスターから提供された1つの文字列例を考えて、 'Split'メソッドを選択して目的の部分文字列を取得すると、' - 'で分割し、「説明:」で始まる部分を検索するほうが良いかもしれません。しかし、「説明:」の部分に '-'文字が含まれていると、これは再び失敗します。一般に、できるだけデータのデリミタが良い方が良いでしょう。より良い 'Split'オプション(IMO) –

関連する問題