C # Regex нужен шаблон для совпадения строк - PullRequest
2 голосов
/ 10 сентября 2010

Это моя вторая попытка получить этот ответ, так как я испортил его в первый раз: s Как вы можете догадаться, я новичок в regex

В основном, строка содержит много слов, разделенных символом "\". так например

\gyifgy8i\gyigyi9g\player_0\k1ng*tar%\gp86gg78.\g79g\player_1\th3dadY>\gyigyigiy\huiohgiu\player_2\j0k$r\g68g6o9g\987pgh890\player_3\PLAYERNAME

Мне нужен скороговорка, которая может соответствовать каждому слову после \ player_n \, где n - это число. Итак, из вышесказанного я хочу сопоставить k1ng * tar% и th3dadY> и j0k $ r (без \ любой стороны). это имена игроков из запроса UDP, запрос udp объединяет каждое значение с "\". каждому имени игрока всегда предшествует \ player_n \, как вы можете видеть выше.

Первоначально мне посоветовали использовать:

string rex = @"[\w]*[\\]player_[0-9]+[\\](?<name>[A-Za-z0-9]*)\b";
        Regex re = new Regex(rex);


            for (Match m = re.Match(stringData); m.Success; m = m.NextMatch())
        {

            players[count] = (m.Groups["name"]).ToString();
            textBox1.Text += players[count] + "\r\n";
            MessageBox.Show((m.Groups["name"]).ToString());
        }

Вышеприведенный шаблон работает, но только если имя игрока использует A-Za-z0-9. В то время я не понимал, что имя игрока может содержать любой персонаж. Может кто-нибудь изменить этот шаблон для меня, пожалуйста, регулярное выражение вне меня: <</p>

Заранее спасибо.

1 Ответ

3 голосов
/ 10 сентября 2010

При условии, что остальные регулярные выражения работают как нужно, вы можете заменить

(?<name>[A-Za-z0-9]*)

на

(?<name>[^\\]*)

, что будет соответствовать всему, кроме \

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