Zum Inhalt springen

Frage zu Regular Expression


Empfohlene Beiträge

Geschrieben

Hi Leute!

Ich habe grade die Aufgabe jCrawler zu konfigurieren und scheitere am entsprechenden regex, der die zu-crawlenden url-patterns beschreibt.

Momentan sieht der regex etwa so aus:

.*?some\.url\.pattern\.de\/blub\/.*
Das soweit noch einfach. Das Ziel ist es jetzt, alle Seiten mit print-layout auszuschliessen. Diese erkennt man daran, dass irgendwo weiter hinten in der URL das Pattern "/print" auftaucht. Ich habe schon n bisschen gesucht und diesen Beitrag gefunden: RegexAdvice - Using a regular expression to exclude a word/string Im Versuch das umzusetzen habe ich dann folgendes gebastelt:
.*?some\.url\.pattern\.de\/blub\/.*?^(?!.*/print.*).*$

Das hat allerdings zur Folge, dass der Crawler anscheinend garkeine URLs mehr matcht.

Kann mir wer weiterhelfen und erklären, was ich falsch gemacht habe?

Dank und Gruß

Amok

Geschrieben

Ah, btw Ich war grade auffm Örtchen, wo einem immer die besten Ideen kommen und da is mir aufgefallen, dass ich den Slash nicht escaped hatte :upps

Das hat mein Problem nur leider nicht gelöst.

Geschrieben

hast du auch berücksichtigt, dass regex den \ auch ge-escaped haben will?

\ ist für RegExp ein Steuerzeichen, muss also mit \ escaped werden --> \\

\ ist für Java aber auch ein Steuerzeichen also ergibt \\ -> \

Das wiederrum führt uns zu \\\\ + Java = \\ + RegExp = \

Geschrieben

oh hab da wohl aufgrund der Müdigkeit den Slash mit dem Backslash verwechselt :schlaf: :upps

aber du solltest vllt mal in Erfahrung bringen ob es mit dem normalen Slash ein ähnliches Problem gibt

Geschrieben

Oh sehr aufmerksam, vielen Dank :uli

tut mir Leid aber ich kann dir da leider nicht mehr wirklich weiterhelfen, sehe in deinem Pattern keinen Fehler(naja habe da auch recht wenig Erfahrung :rolleyes:)

Geschrieben

Dank dir, etreu!

Das hat funktioniert. Ich raff nur ehrlich gesagt nicht so ganz warum. Würdest du dir noch kurz die Zeit nehmen, mir das zu erklären, bitte?

Vielen Dank nochmal,

Amok

Geschrieben

Das "^" Zeichen steht für den Beginn der Zeichenkette, wenn er am Anfang steht oder für die Negation einer Klasse (z.B. [^aA] - keine 'a' oder 'A').

Der negative Lookahead war okay. Treffer wurden gefunden weil die Bedingung mit Lookahead auch noch gestimmt hat - es noch nach dem 'print' einen String der kein 'print' ist.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...