Токенизация строки с разделителем строк - PullRequest
1 голос
/ 24 июля 2011

Если у меня есть строка типа

"Это строка, которая будет разделена на это и что"

Я хотел бы получить результаты разделения как

  1. "- это строка, которая будет разделена на"
  2. "и что"
  3. "это строка"
  4. "будетделится на это и "

1 и 2 делятся на" это "3 и 4 делятся на" то "

Мое решение - использовать карту строки для хранения и хранениярезультат в другой карте той же строки типа в строку.Однако для более сложного и более длинного текста результаты, сохраненные на карте, повторяются, то есть, как в приведенных выше 1 и 3, повторяется подстрока «является строкой», и эта избыточность дает неверные статистические результаты.Не могли бы вы предложить более удачное решение для токенизации длинной строки с разделителями, которые являются разными длинными строками?

1 Ответ

9 голосов
/ 24 июля 2011
string myString = "This is a string that will be splitted by this and that";
string foo = myString.ToUpper();

string[] byThis = foo.Split(new string[] { "THIS" }, StringSplitOptions.RemoveEmptyEntries);
string[] byThat = foo.Split(new string[] { "THAT" }, StringSplitOptions.RemoveEmptyEntries);

string[] all = foo.Split(new string[] { "THAT", "THIS" }, StringSplitOptions.RemoveEmptyEntries);

Или вы можете использовать Regex для этого

string[] all = System.Text.RegularExpressions.Regex.Split(myString, "your pattern", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...