Как зарегистрировать несколько голосовых файлов в Voiceit. Может ли кто-нибудь помочь мне в этом?

Одно альтернативное (и наивное) решение, которое не требует регулярного выражения, должно было бы использовать метод String.Split и функцию List.Select для map : сложное условие:

var text = @"i have the car which is very fast. me is slow.";
var length = 2;
var first = true; // first word in the sentence
var containsDot = false; // previous word contains a dot
var result = text
                .Split(' ')
                .ToList()
                .Select (p => 
                    {
                        if (first)
                        {
                            p = FirstCharToUpper(p);
                            first = false;
                        }
                        if (containsDot)
                        {
                            p = FirstCharToUpper(p);
                            containsDot = false;
                        }
                        containsDot = p.Contains(".");
                        if (p.Length > length)
                        {
                            return FirstCharToUpper(p);
                        }
                        return p;
                    })
                .Aggregate ((h, t) => h + " " + t);
Console.WriteLine(result);

Выход:

I Have The Car Which is Very Fast. Me is Slow.

Метод FirstCharToUpper из этого SO post :

public static string FirstCharToUpper(string input)
{
    if (String.IsNullOrEmpty(input))
        throw new ArgumentException("ARGH!");
    return input.First().ToString().ToUpper() + String.Join("", input.Skip(1));
}

Недостаток это решение: чем сложнее условие, тем более сложным / нечитаемым будет оператор select, но он является альтернативой регулярному выражению.

0
задан Arti Negi 5 March 2019 в 11:07
поделиться