Basic und Reguläre Ausdrücke

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Basic und Reguläre Ausdrücke

von schrödingerkatze » Fr, 04.08.2006 11:01

Danke für die Hilfe, in de.comp.office-pakete.staroffice habe ich eine passende Lösung bekommen: Einfach den Rest-String Zeichen für Zeichen durchgehen und mit

Code: Alles auswählen

IsNumeric

prüfen, ob Zahl; falls ja: weitermachen, falls nein: Treffer und anderweitig verarbeiten.

von Karolus » Fr, 04.08.2006 08:42

Hallo

Was soll bei der Weiterverarbeitung geschehen ? - Soll daraus eine Funktion entstehen ?
Wenn es in diese Richtung geht, ich hab vor einiger Zeit mal an Lösungen gearbeitet, aus chemischen Summenformeln (zb. H2O oder CaCO3) das relative Molekulargewicht zu ermitteln. Zum Schluss hatte ich 3 Lösungen :
1. nur über Tabellenfunktionen
2. über aufgezeichnete (und modifizierte) 'suchen und ersetzen-Makros'
3. eine richtige Makro-funktion mit sehr vielen Zeilen Code (die ich aber nicht selber geschrieben habe)

Falls du daran interessiert bist sag Bescheid.

Gruß Karo

von schrödingerkatze » Do, 03.08.2006 22:24

Danke für die Antwort, aber die RegEx habe ich schon:

Code: Alles auswählen

[0-9]*[a-z]
Mein Problem ist, dass ich nicht weiß, wie ich den Match dann in eine Variable bekomme, die ich dann weiterverarbeiten kann.

von Karolus » Do, 03.08.2006 22:15

Hallo
Im Suchen und Ersetzen - Dialog (und entsprechenden aufgezeichneten Makrocode) sieht der Suchstring so aus:
"[0-9]?[0-9]?[0-9]?[a-z]"
findet keine- und bis zu dreistellige Zahlen gefolgt von einem Kleinbuchstaben.

Vielleicht hilft dir das schon weiter.

Gruß Karo

von schrödingerkatze » Do, 03.08.2006 22:14

Ich möchte, um's mal in Perl zu sagem, etwa so etwas:

Code: Alles auswählen

while ($string =~ m/([0-9]*[a-z])/g) {
	print "Match gefunden: $&\n";          # gibt gefundenen Match aus
	$string =~ s/$1//;                     # schmeißt alles was vor dem Match war incl. demselben weg
}

Basic und Reguläre Ausdrücke

von schrödingerkatze » Do, 03.08.2006 21:25

Hallo zusammen,

in einer Tabellenzelle steht ein String, den ich Stück für Stück abarbeiten will.
Er sieht beispielsweise so aus:
2ac10def1g
, wobei er folgendermaßen zerlegt werden soll:
2a - c - 10d - e -f - 1g

Als Regulärer Ausdruck ausgeschrieben sähe das so aus:
Finde keine/eine/mehrere Ziffern, gefolgt von einem Buchstaben und speichere die in einer Variablen, bearbeite diese und dann immer weiter so, bis der String zuende ist.

In Perl würde ich ja jeweils einfach $& nehmen (das ist der Teil der RegEx der "gematcht" hat) und bearbeiten und dann weiter zum nächsten Treffer gehen, nur weiß ich nicht, was dieses $& unter Starbasic ist.
Das Programmier-Handbuch spricht von "einem TextRange-Objekt", das zurückgegeben wird. Ich glaube, genau das ist das, was ich haben will - nur wie komme ich da dran?

Nach oben