c # Использование подстроки и регулярных выражений для редактирования большой строки - PullRequest
2 голосов
/ 22 февраля 2012

Строка, когда отображается, выглядит следующим образом: значение1, значение2, значение3, значение4, значение5 и т. Д.

То, что я хочу, чтобы строка выполняла после ее отображения (удаление пробелов и запятых, я предполагаю, чтоможно использовать индекс + 2 или что-то еще, чтобы пропустить запятую):

value1

value2

и т. д.

lastKnownIndexPos = 0;

foreach (System.Text.RegularExpressions.Match m in System.Text.RegularExpressions.Regex.Matches(unformatedList, ",?")) //Currently is ',' can I use ', '?
{
    list += unformatedList.Substring(lastKnownIndexPos, m.Index - 1) + "\n\n"; //-1 to grab just the first value.

    lastIndex = m.Index + 2; //to skip the comma and the space to get to the first letter of the next word.

    //lastIndex++; //used this to count how many times it was found, maxed at 17 (have over 100):(
}

//MessageBox.Show(Convert.ToString(lastIndex)); //used to display total times each was found.

MessageBox.Show(list);

В данный моментокно сообщения не показывает никакого текста, но используя lastIndex, я получаю значение 17, поэтому я знаю, что это работает для части этого: P

Ответы [ 3 ]

4 голосов
/ 22 февраля 2012

Это легко (я using System.Linq здесь):

var formatted = string.Join("\n\n", unformatedList.Split(',').Select(x => x.Trim()));
MessageBox.Show(formatted);

Альтернативный подход, как указал Свонни, будет следующим:

var formatted = Regex.Replace(unformatedList, @"\s*,\s*", "\n\n").Trim();

Edit:
Чтобы приведенные выше примеры работали независимо от того, как вы используете строку результата, вы должны использовать Environment.NewLine вместо "\n".

2 голосов
/ 22 февраля 2012

Или, черт возьми, почему бы просто не использовать string.Replace?

var formatted = unformattedList.Replace(", ", "\n\n");
2 голосов
/ 22 февраля 2012

Один из способов - просто заменить "," на новую строку.

MessageBox.Show( unformatedList.Replace(", ", "\n") );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...