2016-07-13 12 views
-3

私は例えば、ログをソートする方法を把握しようとしている...正規表現を使用してログを並べ替える?

  1. ユーザー:テスト
  2. レベル:ユーザー
  3. ドメイン:localhostの
  4. 時間:12時
  5. 何とか: INFO
  6. 日:2016年7月12日
  7. IP:127.0.0.1

出力テキストをこのようにしたいと思います。タブスペースもあります。

ユーザー:レベル:ドメイン:時間:ブラブラ:日付:私は右のあなたの質問を取得した場合はIP

+3

何を並べ替えますか?任意のフィールドでソートする方法を尋ねていますか?どの言語で?この質問は正規表現と何が関係していますか? –

答えて

0

、あなたはソートが、パースについてではない話をしています。別の形式に変換するログ文字列があります。あなたのログの文字列にマッチする正規表現を使用すると、非常に多くのグループを持っているので、ここでは出力が

ある

import re 
logString = "User:Level:Domain:Time:Blah:Date:IP" 
logGroups = ["User", "Level", "Domain", "Time", "Blah", "Date", "IP"] 
reLogGroups = "(?P<"+">[^:]+):(?P<".join(logGroups)+">[^:]+)" 
matchLogGroups = re.search(reLogGroups,logString) 
if matchLogGroups: 
    counter = 1 
    for logGroup in logGroups: 
     print(str(counter)+". " + logGroup + ": " + matchLogGroups.group(logGroup) + "\n") 
     counter += 1 

のpythonの例ですが、はるかに効率的に行うことができる、しかし

(?P<User>[^:]+):(?P<Level>[^:]+):(?P<Domain>[^:]+):(?P<Time>[^:]+):(?P<Blah>[^:]+):(?P<Date>[^:]+):(?P<IP>[^:]+) 

だろう

1. User: User 

2. Level: Level 

3. Domain: Domain 

4. Time: Time 

5. Blah: Blah 

6. Date: Date 

7. IP: IP 
関連する問題