Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Frage zu Regular Expression

Empfohlene Antworten

Veröffentlicht

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

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.

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 = \

Nicht aktiv berücksichtigt würde ich sagen, da meine URL-Patterns sowieso keine Backslashes enthalten ;)

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

Gibt es, deswegen sind sie ja in meinem Beispiel mit Bachslashes escaped ;)

Hier, n Kaffe für dich *rüberschieb* :butler

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:)

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

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.