Author Topic: Regex Filter  (Read 200 times)

Offline freischneider

  • Expert
  • Professor of Locus
  • *****
  • Posts: 1074
  • Thanked: 131 times
    • View Profile
  • Device: Xiaomi Redmi Note 10 Pro, Android 11, Locus Map 4 Gold, Locus-Device-ID: aa54a2bc9
Regex Filter
« on: July 14, 2022, 10:22:33 »
In der neuesten Beta wurde ein Fix mit regex filter behoben.
Frage: was ist Regex überhaupt und was kann ich damit tun. Vielleicht 1 - 2 Beispiele.
Danke
 

Offline Mips

  • Apprentice of Locus
  • **
  • Posts: 192
  • Thanked: 26 times
    • View Profile
  • Device: S5 Neo, S7
Re: Regex Filter
« Reply #1 on: July 14, 2022, 16:11:46 »
Also RegEx sind sogenannte reguläre Ausdrücke mit denen komplexe Suchfunktionen ausgeführt werden können. Ich nehme an, dass das bei Locus auch in diesem Sinne gemeint ist.

Ein einfachestes Bsp::
Suchstring: "Beispiel_Locus36_Test"
RegEx: Locus\d{1,}\W
Sucht im Suchstring (Beispiel_Locus36_Test) nach der Zeichenfolge "Locus" gefolgt von einer beliebigen Zahl welche mindestens 1mal vorkommt d{1,} und der ein Zeilenabschluß (CR, LF) folgt.
Findet in diesem Fall also "Locus36_Test".

Zu beachten ist, das es bei unterschiedlichen Programmen eine unterschiedliche Syntax für RegEx geben kann.
Wie oben beschrieben, können mit RegEx sehr komplexe Suchmuster erzeugt werden und bilden auf der Linux-Shell, z.B. in Verbindung mit grep, ein gewaltiges Werkzeug.
Es kann nämlich nicht nur nach einer ganz bestimmten Zeichenfolge gesucht werden, sondern auch nach Zeichenfolgen die ein bestimmtes Muster aufweisen, z.B. nach allem in einem Text, was nach einer Postleitzahl mit nachfolgender Ortsangabe aussieht. Also nach 5 Ziffern, vielleicht die erste eine 0 und die letzte eine 8, danach ein oder mehrere Nicht-Text Zeichen (Leerzeichen, Unterstrich, Strich etc.) gefolgt von einer beliebigen Anzahl an Buchstaben wobei der erste Buchstabe ein Großbuchstabe sein soll.
In viele Texteditoren wie Notepad++ oder jEdit sind RegEx implementiert, um große Textdateien effizient zu durchsuchen und die gefundene Zeichenfolge ggf. durch eine andere zu ersetzen.

Wie gesagt, RegEx sind sehr komplex, zu komplex um das Thema hier erschöpfend zu bearbeiten, und es gilt bei der Verwendung etliche Fallstricke zu vermeiden.

Hier mal ein  Link, der das Thema mal kurz anreißt.
https://wiki.ubuntuusers.de/grep/
 
« Last Edit: July 14, 2022, 16:25:18 by Mips »
 

Offline tapio

  • Expert
  • Master of Locus
  • ****
  • Posts: 916
  • Thanked: 193 times
  • Country: 00
    • View Profile
Re: Regex Filter
« Reply #2 on: July 14, 2022, 21:37:01 »
Wer reguläre Ausdrücke zu nutzen weiß, ist bei Suchen ganz weit vorne. Zwischen einfach und saukompliziert, ich brauche sie täglich, privat und im Job.
Zeitloser Cartoon, ein echter Klassiker dazu: https://xkcd.com/208/
"Everybody stand back! I know regular expressions"

Simples Beispiel, da ich das an anderer Stelle hier ansprach: Suche nach Tracks in Locus. Ich will Tracks suchen, wo der Titel mit 2022 anfängt. Das geht mit Regex, Locus kann das aber nicht. Es findet halt alles, wo 2022 irgendwo im Titel vorkommt.

Anderes Beispiel; Ich lasse mir vom Handy TANs/Einmal/2fa-Codes laut vorlesen, wenn sie per SMS reinkommen. So muss ich nicht das Handy in die Hand nehmen. Was muss die Funktion dafür in der SMS finden? In der Regel: genau 6 Ziffern, die von Zeichen umgeben sind, die keine Zahl/Buchstabe sind. Das kann man mit Regex ausdrücken, mit einer einfachen Suche nicht.

Sogar MS Word hatte schon immer Regex.
« Last Edit: July 14, 2022, 21:55:05 by tapio »
LM4 USER ID: 1AACAFF2A2
My "Tasker vs. Locus" YouTube playlist: http://tiny.cc/LocusVsTasker
 

Offline freischneider

  • Expert
  • Professor of Locus
  • *****
  • Posts: 1074
  • Thanked: 131 times
    • View Profile
  • Device: Xiaomi Redmi Note 10 Pro, Android 11, Locus Map 4 Gold, Locus-Device-ID: aa54a2bc9
Re: Regex Filter
« Reply #3 on: July 15, 2022, 06:27:15 »
Danke euch.....da muss ich mich wohl erst mal einarbeiten.