C #: разобрать подстроку из строки, обнаружив пробел - PullRequest
2 голосов
/ 10 февраля 2010

Если у меня есть различные строки, текст которых сопровождается пробелом и текстом, как я могу разобрать подстроку, начинающуюся с первого символа во втором блоке текста?

Например: Если у меня есть строка:
"stringA stringB"

Как извлечь подстроку
"StringB"

Строки имеют различную длину, но все они будут в формате.

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

Ответы [ 4 ]

2 голосов
/ 10 февраля 2010

RegEx не требуется, просто разделите его.

var test = "stringA stringB";
var second = test.Split()[1];

и, если вы находитесь в замечательной LINQ-земле

var second = "string1 string2".Split().ElementAtOrDefault(1);

и с RegEx (для полноты)

var str2 = Regex.Match("str1 str2", @"\w (.*$)").Groups[1].Value;
1 голос
/ 10 февраля 2010

использовать string.Split ()

var test = "stringA stringB";
var elements = test.Split(new[]
{
    ' '
});
var desiredItem = elements.ElementAtOrDefault(1);

если вы хотите захватить все пробелы ( msdn сообщает нам больше ):

var test = "stringA stringB";
//var elements = test.Split(); // pseudo overload
var elements = test.Split(null); // correct overload
var desiredItem = elements.ElementAtOrDefault(1);

редактирование:
почему псевдоперегрузка?

  • .Split() компилируется в .Split(new char[0])
  • не задокументировано в MSDN
0 голосов
/ 10 февраля 2010

Вам не нужно событие Split (). Я думаю, что простая IndexOf / Substring сделает эту работу.

        var input = "A B";
        var result = string.Empty;
        var index = input.IndexOf(' ');
        if (index >= 0)
        {
            result = input.Substring(index + 1);
        }
0 голосов
/ 10 февраля 2010

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

string[] result = { };
string myStrings = "stringA stringB stringC";
result = myStrings.Split(' ');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...