string text = "This is some text";
var splits = Regex.Split(text, @"(?=(?<=[^\s])\s+)");
foreach (string item in splits)
Console.Write(item);
Console.WriteLine(splits.Count());
Bu, her tüm önde gelen boşlukları olan 4 böler verecek korunmuş.
(?=\s+)
Önceden boşlukların bulunduğu noktadan ayırma anlamına gelir. Ancak bunu tek başına kullanırsanız, örnek metin üzerinde 15 bölme oluşturacaktır, çünkü her alanın tekrarlanan boşluklarda başka bir boşlukla devam etmesi gerekir.
Bu, daha önce boşluk olmayan karaktere sahip olan bir noktadan ayırma ve önündeki boşluklara sahip olma anlamına gelir. Metin, uzaydan başlar ve bu o zaman alanların dizi anlamına
(?=(?<=^|[^\s])\s+)
aşağıdaki ifadeyi değiştirebilir hiçbir metin ile ilk bölünme yakalanan istiyorsanız
olmayan bir alana sahip olmalısınız ondan önceki karakter VEYA dizenin başlangıcı.
Boşluğu nasıl/nerede tutmak istiyorsunuz? Örneğin, '' foo bar '' dizgisi hangi bölüme ayrılmalı? – BoltClock