c # строка манипуляции добавить * для простого слова - PullRequest
0 голосов
/ 06 марта 2019

Я бы хотел добиться следующего наилучшим образом в c #, может кто-нибудь мне помочь.

У меня есть строка типа

ind item1 +china -brazil "my component" "my country":india type:project

Я хочу преобразовать ее какниже.

ind* item1*  +china -brazil "my component" "my country":india type:project

Проще говоря, если в слове нет ничего вроде +, - или : или двойной кавычки, я хочу добавить * в конце.Пожалуйста, помогите мне.

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

каким-то образом я достиг этого длительным образом ... Не уверен, что есть какой-нибудь ярлык для достижения ...

var Keywords_updated = (Keywords.Replace ("", "*")); words_updated = Keywords_updated.EndsWith ("")? keys_updated: Keywords_updated + ""; MatchCollection col = Regex.Matches (ключевые слова, "\\" (. ?) \\ ""); // Regex.Matches (ключевые слова, "(? <= \") [^ \ "] </em> (? = \ ") | [^ \"] + "); var data = col.Cast (). Select (m => m.Value) .ToList ();

        Console.WriteLine(data.Count);
        foreach (var item in data)
        {
            keywords_updated = keywords_updated.Replace(item.Replace(" ","* "),item);
        }
        keywords_updated = keywords_updated.Replace("\"*", "\" ");
        var spllist = new List<string> { "-", "+", ":" };
        var words = keywords_updated.Split(' ').Where(x=>x.StartsWith("-")||x.StartsWith("+")||x.Contains(":"));
        foreach(var word in words)
        {
            keywords_updated = keywords_updated.Replace(word, word.Replace("*",""));
        }

        Console.WriteLine(keywords_updated);
0 голосов
/ 06 марта 2019

Вы можете проверить, содержит ли строка, разбитая на слова, все символы в виде буквы.Вот пример:

    string AddStars(string input)
    {
        var words = input.Split(' ');

        var output = "";
        foreach (var word in words)
        {
            output += word;
            if (!word.ToCharArray().ToList().All(char.IsLetter))
                output += "*";

            output += " ";
        }

        return output.TrimEnd();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...