Regex……

Regular Expressions (kurz: regex) sind einzelne Zeichen oder Zeichenketten mit denen man dazu passende Zeichenfolgen in einer Datei oder der Ausgabe eines Programms suchen kann.

Regex lassen sich mit Unixoiden Tools wie grep oder egrep nutzen, oder in Programmiersprachen die das unterstützen, zu den letzteren zählt u.a. Java.

ls * oder dir *.txt dürfte zu den verbreitetsten Anwendungen von regex’en zählen. Das „*“ – Zeichen bzw. die Zeichenkette „*.txt“ bilden die Suchvorschrift nach der die passende Zeichenketten ausgegeben werden.

Grundlagen
Alle hier vorgestellten Beispiele habe ich unter Mac OS X 10.9.5 im Terminal getestet.

Das Tool grep unterstützt unter Mac OS nicht den vollen Umfang der regex. Ich empfehle deshalb egrep zu benutzen, damit können auch umfangreichere Ausdrücke verarbeitet werden.

Wenn etwas verlinkt ist, dann war der letzte Aufruf = Stand dieses Posts.

Beispiele
Kurz und schlank, eine Erklärung folgt irgendwann….

Grundlegender Syntax:

egrep "regex" suchtext.txt

Telefonnummern finden:

egrep "0[0-9]{3}-[0-9]{3,15}" testFile.txt

Findet Telefonnummern, ohne internationale Vorwahl.

String Objekte in Strings wandeln..

…Objective C und natives C arbeiten harmonisch, Seite an Seite. 

Da frage ich mich, wie kann man die Schnittstellen gestalten. Nehmen wir an, wir bauen uns ein Cocoa Projekt unter XCode. Dort erzeugen wir uns gewöhnlich ein Controller Objekt. Dieses Objekt repräsentiert z.B. ein Dialog Feld. Die Textfelder sind die Eigenschaften unseres Dialog Objektes. Die Buttons dessen Methoden.

Pures Objective C regelt den Dialog. Die Funktionen welche – je nach Dialog mit dem Nutzer – zur Ausführung gewünscht werden, sind in nativem C geschrieben.

Wie übergebe ich nun z.B. der Funktion „test ()“ einen String der in einem NSTextField Objekt steht?

Antwort: Wir wandeln das den String aus dem NSTextField – der ja eigentlich ein Objekt ist – in einen String, der auch einer ist – kein Objekt!

Das geht z.B. so:

Bildschirmfoto 2013-11-10 um 20.25.11

 

Die Funktion bekommt einen „echten“ String übergeben: grafik15(char meinstring[length]) {….}

That’s it!

Strings

Einem NSTextView Objekt kann ich nur String- Objekte aus: NSAttributedString übergeben. Das geht mit der Methode: appendAttributedString.

Beispiel:
NSAttributedString *next=[[NSAttributedString alloc] initWithString:@“\n“];
[protokoll_speicher appendAttributedString:next];

wobei protokoll_speicher der Inhalt unseres NSTextView ist und über:
protokoll_speicher=[protokoll textStorage];
deffiniert, gebildet… wird?

Was nun, wenn ich einem NSTextView Objekt eigentlich einen StringWithFormat übergeben möchte? Funktionieren tut das:

Bildschirmfoto 2013-10-20 um 20.37.40

 

Warum? Ich muss da wohl noch forschen……