1

我想解析字符串:

????log L 07/31/2012 - 14:32:50: "Username1<4><STEAM_ID_PENDING><CT>" killed "Username2<2><STEAM_ID_PENDING><TERRORIST>" with "m4a1"

我必须得到价值观:

  1. 用户名1
  2. 用户名2
  3. m4a1

我有正则表达式模式

Regex reg = new Regex("[^\"]+\"([^<]+)<[^\"]+\" killed \"([A-Za-z0-9]+)[^\"]+\" with \"([A-Za-z0-9]+)\"");

如果第二个用户名不包含_此或此- 如果第一个包含正则表达式获取值,则此方法非常有效。

请帮我修改我的模式

谢谢

4

2 回答 2

1

用这个替换它:

Regex reg = new Regex("[^\"]+\"([^<]+)<[^\"]+\" killed \"([^<]+)[^\"]+\" with \"([A-Za-z0-9]+)\"")

查找名称的组是:

([A-Za-z0-9]+)

我将其替换为:

([^<]+)

这是用于查找第一个用户名的模式。

于 2012-08-03T09:23:50.920 回答
0

尝试这个

(?<Username1>"Username1(?<data>[^"]*)")\s+killed\s+(?<Username1>"Username2(?<data>[^"]*)")\s+with\s+(?<m4a1>"m4a1(?<data>[^"]*)")

命名组将返回它们各自的值。

于 2012-08-03T09:20:29.297 回答