Falls man komplexer in Eclipse suchen möchte, so besteht auch
die Möglichkeit Regular Expressions zu benutzen.
Regular Expressions(o.a. RegExp)/Regulärer Ausdrücke sind quasi Mengenabfragen
über Zeichenketten. Sie werden auch oft für Ersetzungsregeln verwendet.
Diese Regeln werden sehr schnell abgearbeitet, so das z.B. 2.000 Dateien
in wenigen Sekunden nach diesen Patterns/Mustern durchsucht werden.
In diesem Beispiel habe ich das Problem, dass durch unterschiedliche Zeichensätze
Umlaute in Fragezeichen umgewandelt wurden.
Diese Problem betrifft mehrere hundert Dateien. Mit Hilfe der RegExps möchte ich
die Codestellen finden wo z.B. wählen zu w?hlen wurden, ohne das ich jede Datei
einzel per Hand durchsuchen möchte.
ö, ä und ü stehen ja immer bei anderen Buchstaben.
Alle Buchstaben kann man per RegExp mit [A-Za-z] definieren. Alle Zeichen
von A bis Z und alle von a bis z.
Falls man nur Fragezeichen suchen möchte, geht das mit \?. Der Backslash ist
zum Maskieren des Fragezeichens, da es ansich eine RegExp-Funktionalität hat.
Umlaute können auch am Wortanfang stehen, so das nicht zwingend ein Buchstabe vorher
gehen muss, also Buchstaben davor oder dahinter.
Das ODER wird per Pipe | gesteuert.
Also entweder [A-Za-z]\? oder \?[A-Za-z]. Dieses muss als eine Gruppe
definiert werden. Gruppen setzt man mit Klammern.
Also: ([A-Za-z]\?|\?[A-Za-z])
Im Code sind oft so Stellen wie …do?todo…, …do?prepro…. und … x oder y oder z …
Also brauch’ man nur eine Teilmenge vom Ergebnis. Mit ^ kann man Mengen subtrahieren.
[^(o\?t|o\?pr|\?xml|.do\?|ll\?”)] ist die Subtraktion.
Im Endeffekt hat man dann: (([A-Za-z]\?|\?[A-Za-z])[^(o\?t|o\?pr|\?xml|.do\?)])