2
模式这是我第二次尝试得到这个答案,因为我搞砸了第一次:S是你可以猜测进出口新的正则表达式C#正则表达式需要字符串匹配
基本上,该字符串包含了大量的分隔的话“\” 的。所以例如
\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());
}
上面的图案有点工作,但前提是playername使用A-ZA-Z0-9。当时我没有意识到该玩家名称可以包含任何角色。有人可以请我修改这种模式,正则表达式超越了我:<
在此先感谢。
这是更好的一切,但仍不能100%取代
,我确实得到了一个更好的结果,但是我现在只是运行这个应用程序,udp字符串有一些晦涩的玩家名称,例如:VM_C) - (r!s.cl和:dezerTer // cl。这两个名称都没有匹配你的新正则表达式:
brux
2010-09-09 22:59:27
sry,这实际上工作...它得到smt处理来自udp的返回字符串,由于某种原因udpclient我们没有收到完整的字符串:s – brux 2010-09-09 23:23:31