2013-10-24 7 views

cevap

4

Kontrol dışarı bu Java kütüphanesi

https://github.com/aicer/grok

Sen olarak projenize dahil edebilirsiniz bir maven bağımlılık

<dependency> 
    <groupId>org.aicer.grok</groupId> 
    <artifactId>grok</artifactId> 
    <version>0.9.0</version> 
</dependency> 

O öncesi ile geliyor tanımlanmış desenler ve sizinkini de ekleyebilirsiniz.

Adlandırılmış kalıplar ayıklanır ve sonuçlar bir grupta anahtar olarak gruplar adları ile kullanılabilir ve alınan değerler bu anahtarlarla eşlenir.

final GrokDictionary dictionary = new GrokDictionary(); 

// Load the built-in dictionaries 
dictionary.addBuiltInDictionaries(); 

// Add custom pattern 
dictionary.addDictionary(new File(patternDirectoryOrFilePath)); 

// Resolve all expressions loaded 
dictionary.bind(); 

Bu gelecek örnekler İşte

final GrokDictionary dictionary = new GrokDictionary(); 

// Load the built-in dictionaries 
dictionary.addBuiltInDictionaries(); 

// Add custom pattern directly 

dictionary.addDictionary(new StringReader("DOMAINTLD [a-zA-Z]+")); 
dictionary.addDictionary(new StringReader("EMAIL %{NOTSPACE}@%{WORD}\.%{DOMAINTLD}")); 

// Resolve all expressions loaded 
dictionary.bind(); 

kütüphaneye

public final class GrokStage { 

    private static final void displayResults(final Map<String, String> results) { 
    if (results != null) { 
     for(Map.Entry<String, String> entry : results.entrySet()) { 
     System.out.println(entry.getKey() + "=" + entry.getValue()); 
     } 
    } 
    } 

    public static void main(String[] args) { 

    final String rawDataLine1 = "1234567 - [email protected] cc55ZZ35 1789 Hello Grok"; 
    final String rawDataLine2 = "98AA541 - [email protected] mmddgg22 8800 Hello Grok"; 
    final String rawDataLine3 = "55BB778 - [email protected] secret123 4439 Valid Data Stream"; 

    final String expression = "%{EMAIL:username} %{USERNAME:password} %{INT:yearOfBirth}"; 

    final GrokDictionary dictionary = new GrokDictionary(); 

    // Load the built-in dictionaries 
    dictionary.addBuiltInDictionaries(); 

    // Resolve all expressions loaded 
    dictionary.bind(); 

    // Take a look at how many expressions have been loaded 
    System.out.println("Dictionary Size: " + dictionary.getDictionarySize()); 

    Grok compiledPattern = dictionary.compileExpression(expression); 

    displayResults(compiledPattern.extractNamedGroups(rawDataLine1)); 
    displayResults(compiledPattern.extractNamedGroups(rawDataLine2)); 
    displayResults(compiledPattern.extractNamedGroups(rawDataLine3)); 
    } 
} 
nasıl kullanılacağına ilişkin tam bir örnektir bir dosyayı kullanmadan sözlüğe doğrudan dize desenlerini ekler
İlgili konular