Textstrings prüfen

Hallo zusammen,

mich würde interessieren, ob es eine einfache und schnelle möglichkeit gibt, zu überprüfen, ob in längeren zusammenhängenden textstrings bestimmte Zeichenkombinationen vorkommen. (Vielleicht in Excel VBA oder auch Q-Basic)
Als Beispiel ich habe den Quellstring:

KBHIGJHDLHDFSJHFSKDJFLSDKJFBVSDKFJBSJFBSLKJFBKDFSJBSKDFJBSDKJFBSKDJFBLSKDJFBKSLDJBFSKDJBFLKSDJBFLSKDJBFKLSDJBFLKSDJBFLSKDJFBLDKSJBFLKDSJBFLKSDJBFSLKJFB

und Möchte Prüfen ob da z.B. die Kombinationen
QJKLMEH
QGKLMEH
QGKWMEH
und
GOPDZEBVDP
vorkommen

Als ausgabe wäre es dann für mich interessant, zu sehen, wo im Quellstring sich die entsprechenden Kombinationen verbergen. Vom Prinzip her ähnlich wie die Wordfunktion „Suchen“ die einem den text dann farbig markiert nur mit gleichzeitiger Prüfung mehrerer Kombinationen mit leichten abwandlungen.

Hallo,

was du suchst nennt sich „Regular Expression“ oder kurz Regex/RegExp.
Damit solltest du eigentlich für jede Sprache etwas finden.

Gruß,
Steve

Ahoi,

was du suchst nennt sich „Regular Expression“ oder kurz
Regex/RegExp.
Damit solltest du eigentlich für jede Sprache etwas finden.

An sich ne gute Idee, aber wenn es nur darum geht bekannte Teilstrings zu finden und deren Position zu ermitteln, dürfte im Falle von Excel VBA (und den allermeisten anderen BASIC-Dialekten) die InStr Funktion (http://www.online-excel.de/excel/singsel_vba.php?f=18) völlig ausreichen.

1 Like

Eine Ausgabe ob oder wie oft eine gewisse Zeichenfolge vorkommt ist schon eine nette Sache, das kann man aber auch mit anderen Excelfunktionen die alle relativ einfach funktionieren oder eben mit der einfachen Word Suchfunktion.
Ich möchte allerdings ein Makro, dass mir z.B. in einem Word Dokument oder in Excel eine Zeichenfolge durchsucht und die Entsprechende Position auf irgendeine Art und Weise markiert.
Es würde mir schon reichen, wenn ich in meinem String, in dem Nur großbuchstaben vorkommen diese als Ausgabe durch kleinbuchstaben ersetzen könnte.

Des weiteren habe ich wie gesagt mehrere Zeichenfolgen, nach denen ich möglichst schnell in verschiedenen Quelltexten suchen möchte.

Leider ist mein letztes Arbeiten mit VBA schon etwas her und ich hatte gehofft eventuell ein im wesentlichen fertiges Skript zu finden oder zumindest ein Grundmuster zu haben, um mich nicht wieder komplett von Grund auf einarbeiten zu müssen. Leider sind sämtliche Skripte auf die ich bisher gestoßen bin entweder nicht funktionsfähig oder für mich ungeeignet.

Hallo Samoht Hammer,

leider kann ich nicht mit VBA dienen aber auf die Schnelle kann ich mit einem kurzen Perl-Skript aushelfen. Das Ganze funktioniert im Prinzip mit zwei Schleifen und substr und das heißt meines Wissens in VBA mid().
Starten kann man das Ganze in der Eingabeaufforderung mit perl \pfad\zum\skript\skript-name.pl sofern Perl installiert ist.

Hier der Code:

#!/usr/bin/perl

use strict;
use warnings;

my $string = „KBHIGJHDLHDFSJHFSKDJFLSDKJFBVSDKFJBSJFBSLKJFBKDFSJBSKDFJBSDKJFBSKDJFBLSKDJFBKSLDJBFSKDJBFLKSDJBFLSKDJBFKLSDJBFLKSDJBFLSKDJFBLDKSJBFLKDSJBFLKSDJBFSLKJFB“;
my @suchstrings = qw(QJKLMEH QGKLMEH QGKWMEH GOPDZEBVDP LKDSJBFLKSDJBFSLKJFB B);
my $i = 0;

foreach my $ss(@suchstrings){
print „$ss \n“;
for ( 0 … length($string)-1){
if(substr( $string, $_, length($ss)) eq $ss){
print „$ss ist an Position $_ zu finden !\n“;
}
}
print $ss . " wurde " . $i . „mal gefunden!\n\n“;
$i=0;
}

Deine Suchbeispiele habe ich durch findbare erweitert.
Bei Fragen … fragen.
Viel Spaß und Erfolg beim Testen,

Gruß,
charly60