C # получить имя пользователя из строки.Трещина - PullRequest
0 голосов
/ 29 февраля 2012

Привет всем, я хочу разделить текст и получить значение

Как я могу получить Example отсюда:

L 02/28/2012 - 04:52:05: "Example<2><VALVE_ID_PENDING><>" entered the game

Я перепробовал кучу всего, но мне было очень трудно? Кто-нибудь может мне помочь?

Ответы [ 5 ]

1 голос
/ 29 февраля 2012

Можно попробовать что-то вроде

string s = "L 02/28/2012 - 04:52:05: \"Example<2><VALVE_ID_PENDING><>\" entered the game";
int start = s.IndexOf('"')+1;
int end = s.IndexOf('<');
var un = s.Substring(start, end-start);
1 голос
/ 29 февраля 2012
// say you have your text in the text variable
var yourExtractedText = text.Split('"').Split('<')[0];

Осторожно, это приведет к исключениям, если формат строки изменится.

0 голосов
/ 29 февраля 2012

Вот вы:

        private void button2_Click(object sender, EventArgs e)
        {
            string temp = GetExample("L 02/28/2012 - 04:52:05: \"Example<2><VALVE_ID_PENDING><>\" entered the game");
        }

    private string GetExample(string text)
    {
        int startIndex = text.IndexOf('"');
        int endIndex = text.IndexOf('<');

        return text.Substring(startIndex + 1, endIndex - startIndex - 1);
    }

Не забывайте, что перед " в строке должен стоять \.

0 голосов
/ 29 февраля 2012

Вы можете использовать регулярные выражения, чтобы найти то, что ищете:

Match match = Regex(inputString, "\"([\w\s]+)<");
if (match.Success) {
    String username = match.Groups[1].Value;
}

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

Match match = Regex(inputString, "\"([\w\s]+)<[0-9]+>");
if (match.Success) {
    String username = match.Groups[1].Value;
}
0 голосов
/ 29 февраля 2012

Вам нужно дать символ перед началом выходной строки, которую вы делаете myString.Split('"');, вы получите массив строк, который

string[] myStringArray = myString.Split('"');

myStringArray[0]  contains L 02/28/2012 - 04:52:05: 
myStringArray[1]  contains Example<2><VALVE_ID_PENDING><>" 
myStringArray[2]  contains entered the game 

Вы можете применить эту логику и построить необходимую строку.

Не забудьте использовать StringBuilder при повторном построении строки.

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