In Strings nach regulären Ausdrücken suchen
-
@Finnegan sagte in In Strings nach regulären Ausdrücken suchen:
Anfänger
Erster eruierbarer Beitrag hier im Forum ist vom 4. Sept. 2012, 23:41 ...
-
Hi(gh)!
Ja, aber Programmieren ist eine Sache, wo man tagtäglich dranbleiben muss - ansonsten bleibt man ein Leben lang Anfänger! Leider ist Programmieren nicht mein einziges Hobby, sonst hätte ich wahrscheinlich mittlerweile mehr Durchblick...
Bis bald im Khyberspace!
Yadgar
-
https://www.google.com/search?q=position+match+regex+c%2B%2B
zweites Ergebnis: https://stackoverflow.com/questions/27927913/find-index-of-first-match-using-c-regex
ansonsten bleibt man ein Leben lang Anfänger!
Quatsch mit Soße. Ohne Eigeninitiative bleibt man ein Leben lang Anfänger.
-
@Finnegan
Nein, das ist zu kompliziert für mich, da macht mein Gehirn die Grätsche! Gibt es keine einfachere Sprache als C++, um Inhalte aus HTML-Codetexten zu extrahieren?
-
Hi(gh)!
Da ich offensichtlich zu dumm bin, um die Implementation regulärer Ausdrücke in <regex> zu verstehen, hier meine Lösung für Dumme (bzw. C++-Traditionalisten, die mit diesem neumodernen ECMAScript-Zoix nix am Hut haben):
unsigned int pw[10]; // Array für Suchergebnisse für die Ziffern 0 bis 9 unsigned short int i; unsigned int pos; occ = source.find("itemprop=\"locality\">"); for (i=0; i<10; i++) { pw[i] = source.find((char)48+i, occ); if (i == 0) pos = pw[i]; else if (pw[i] < pos) pos = pw[i]; } for (i=0; i<10; i++) // Testausgabe cout << pw[i] << endl; cout << "Erstes Vorkommen einer Zahl ab Stelle " << occ << ": " << pos << endl; // Testausgabe
-
@Yadgar sagte in In Strings nach regulären Ausdrücken suchen:
@Finnegan
Nein, das ist zu kompliziert für mich, da macht mein Gehirn die Grätsche! Gibt es keine einfachere Sprache als C++, um Inhalte aus HTML-Codetexten zu extrahieren?Als ich das letzte mal so etwas benötigt habe, habe ich das mit dem Kommandozeilen-Tool Xidel gemacht und die Abfrage in XQuery geschrieben, um die (unstrukturierten) Daten in mehreren HTML-Dokumenten in (strukturierte) JSON-Daten zu transformieren.
Ich fand, dass man damit recht gut selbst komplexe HTML-Dokumente handhaben kann - allerdings muss man sich da auch erstmal etwas einarbeiten. Vielleicht ist das ja auch eine Lösung für dein Problem. C++ wäre für sowas jedenfalls nicht meine erste Wahl - besonders bei Problemen, bei denen man garantiert nicht der erste ist, der das hat, schaue ich mir erstmal an, ob vorhandene Lösungen ausreichend sind.
-
Hi(gh)!
@Finnegan
Na ja, mittlerweile komme ich ja schon wieder gut voran, auch ohne <regex> - aber es ist natürlich C++ wie vor 25 Jahren (das war auch die Zeit, als ich meinen ersten Volkshochschul-C++-Kurs hatte und damals Feuer und Flamme für die Sprache war...)...Bis bald im Khyberspace!
Yadgar
-
Vielleicht erzählst Du mal zur Abwechslung was Du konkret erreichen willst anstatt wild rumzuschießen. HTML kannst Du mit regex sowieso nicht parsen.
-
@Yadgar sagte in In Strings nach regulären Ausdrücken suchen:
pw[i] = source.find((char)48+i, occ);
Unabhängig vom Thema: Wenn Du
'0'
meinst, dann schreib'0'
hin.
-
Hi(gh)!
@Swordfish sagte in In Strings nach regulären Ausdrücken suchen:
Vielleicht erzählst Du mal zur Abwechslung was Du konkret erreichen willst anstatt wild rumzuschießen. HTML kannst Du mit regex sowieso nicht parsen.
Also: Mein Programm "oac" (Organ Ad Compressor) soll auf Festplatte gespeicherte eBay-Kleinanzeigen elektronischer Orgeln auf ihre essentielle Information reduzieren: Anzeigentext, Benutzername, Anzeigendatum, Ort und Preis und diese Informationen in ein rudimentäres HTML-Gerüst, gerade umfangreich genug, um als fehlerfreier HTML-Code angezeigt zu werden, einfügen; ferner sollen auch alle großformatigen Fotos des angebotenen Artikels eingebunden werden (im Original zu erkennen am Dateinamen "72_[kein Zeichen oder dreistellige laufende Nummer mit führenden Nullen].JPG"). Außerdem sollen die reduzierten HTML-Dateien mitsamt ihren Bilddateien in Ordner geschrieben werden, die fortlaufend nach dem Schema "YYYYMMDD_%03d" benannt sind, dies soll ebenfalls der Name der jeweiligen HTML-Datei sein.
Warum ich das mache? Es handelt sich um mehrere zehntausend Dateien, die mit all dem Overhead, der heutzutage mit kommerziellen HTML-Dateien einhergeht, rund 300 GB auf meiner Festplatte einnehmen. Nach einer solchen Reduktion auf die Kerninformation werden es voraussichtich noch 6 GB sein... die Dummenlösung wäre, jetzt einfach noch eine externe Festplatte zu kaufen (prollerolleroll) - aber dafür fehlt mir das Geld.
Die Kerninformationen der Anzeigen (darunter selbstverständlich auch das entweder aus dem Anzeigentext oder den Fotos ersichtliche Orgelmodell) will ich im Rahmen meiner GREENBOOK-E-Orgel-Datenbank in eine Marktspiegel-Statistik einpflegen - dies dann natürlich manuell.
Bis bald im Khyberspace!
Yadgar