2012-08-03 76 views
1

我想解析字符串值:獲得從字符串.NET C#與正則表達式

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

我得值:

  1. USERNAME1
  2. USERNAME2
  3. M4A1

我有正則表達式

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

這工作完全,如果第二個用戶名不包含_本或本- 如果第一個是包含正則表達式中獲得價值。

請幫我修改我的模式

感謝

回答

1

這種替換:

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

集團尋找的名字是:

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

我取代它:

([^<]+) 

這是用來查找第一個用戶名的模式。

0

試試這個

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

命名組將返回各自的價值。