2016-01-13 8 views
13

Ich möchte nur ein paar Worte in logcat zu sehen. Mit anderen Worten, nur bestimmte Tags. Ich habe versucht, Regex zu aktivieren und [Encoder|Decoder] als Filter eingeben, aber es funktioniert nicht.Wie mehrere Wörter in Android Studio zu filtern logcat

+3

Verwenden Sie eine Gruppe, nicht eine einzelne Zeichenklasse: '(Encoder | Decoder)'. Und bitte geben Sie an, was und wie es "nicht funktioniert". –

+0

Ja! Das funktioniert. Willst du es nicht zu einer Antwort machen, die ich als Lösung markieren könnte? ;) – Pitel

Antwort

22

Sie sollten eine Gruppierung Konstrukt verwenden:

(Encoder|Decoder) 

Eigentlich kann man nur

Encoder|Decoder 

verwenden Wenn Sie [Encoder|Decoder] verwenden, die Zeichenklasse erstellt, die für ein einzelnes Zeichen Spiele E, n, c ... |, ... oder r.

Siehe Character Classes or Character Sets:

Mit einer „Zeichenklasse“, auch „Zeichensatz“ genannt, können Sie das Regex-Engine anweisen, nur eine von mehreren Zeichen zu entsprechen. Platzieren Sie einfach die Zeichen, die Sie zuordnen möchten, in eckigen Klammern. Wenn Sie einen a oder einen e suchen möchten, verwenden Sie [ae].

Ein weiteres Muss lesen ist sicherlich Alternation with The Vertical Bar or Pipe Symbol:

Wenn Sie die wörtliche Text cat oder dog suchen wollen, trennen beide Optionen mit einem vertikalen Balken oder Pipe-Symbol: cat|dog. Wenn Sie weitere Optionen wünschen, erweitern Sie einfach die Liste: cat|dog|mouse|fish.

Wenn (...) mit Sie sagen, der Regex-Engine zu einer Gruppe Sequenzen von Zeichen/Subpattern (mit der Erfassung diejenigen, die submatches in dem Speicherpuffer gespeichert und Sie können sie über Rückreferenzierungen zugreifen und mit Nicht-Erfassung (?:...) Sie gruppieren die Unter-Patterns):

Teil eines regulären Ausdrucks in runden Klammern oder Klammern, können Sie Gruppe, die Teil des regulären Ausdrucks zusammen Durch die Platzierung. Auf diese Weise können Sie eine quantifier auf die gesamte Gruppe anwenden oder alternation auf einen Teil der Regex beschränken.

+1

Ich füge einfach .. TAG1 | TAG2 ohne Leerzeichen hinzu. – wsgeorge

+0

@wsgeorge: Ich verstehe nicht, was du meinst. Schau, ich habe schon geschrieben * Eigentlich kannst du einfach 'Encoder | Decoder' * benutzen - ist das nicht das selbe? Wenn Sie wirklich eine wörtliche "TAG" gefolgt von einer beliebigen Zahl haben, ist keine Änderung nötig, verwenden Sie "TAG \ d +' :) –

+0

Ich habe die Angewohnheit Leerzeichen zwischen Operatoren hinzuzufügen, also habe ich buchstäblich "TAG1 | TAG2 "in AS und fand, dass es nicht funktioniert hat. Ich dachte nur, dass andere wissen sollten, um dieses kleine Gotcha zu vermeiden. – wsgeorge