2017-08-29 7 views
-6

Iは静的テキストである最初のテキストを削除するには? (C#の)

var text = "14. hello my friends we meet 1 test, 2 baby 3 wiki 4 marvel"; 
string[] split = text.Split('14.', 1, 2, 3, 4); 
var needText = split[0].Replace('14.', ''); 

"1" "2" "3" "4" コードします。

しかし、 "14."動的テキストです。

EX)

var text2 = "1972. google youtube. 1 phone, 2 star 3 tv 4 mouse"; 
string[] split = text.Split('1972.', 1, 2, 3, 4); 
var needText = split[0].Replace('1972.', ''); 
+0

「。常に最初の数字の後に? –

+1

参照してください:[なぜ誰かが私を助けることができますか?実際の質問ではありませんか?](http://meta.stackoverflow.com/q/284236) – EJoshuaS

答えて

0

あなたは、このようなダイナミックなセパレータを使用している場合は、String.Splitは適していません。代わりにRegex.Splitを使用してください。

パターンRegex.Splitを指定すると、パターンに一致するすべての部分文字列をセパレータとして処理します。

この場合、あなたはこのようなパターンが必要です。

\d+\. |1|2|3|4 

|or演算子です。 \dは任意の数字に一致します。 +は、1から無制限の間で一致することを意味します。 .は正規表現で特別な意味を持つため、\.は文字通りドットにマッチします。

使用法:

var split = Regex.Split(text, "\\d+\\. |1|2|3|4"); 

そして、私はあなたが必要とするテキストがsplitのインデックス1であると思います。

usingディレクティブをSystem.Text.RegularExpressionsに追加することを忘れないでください!

0

IndexOf()Substring()を使用すると、必要な情報を簡単に取得できます。それがあなたの例よりも複雑なら、Regexを使います。

var text = "14. hello my friends we meet 1 test, 2 baby 3 wiki 4 marvel"; 
var strArr = text.Substring(text.IndexOf(' ')).Split('1', '2', '3', '4'); 
関連する問題