Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   mySQL: Bizarres Problem mit REGEXP (https://www.delphipraxis.net/45137-mysql-bizarres-problem-mit-regexp.html)

moritz 30. Apr 2005 12:17


mySQL: Bizarres Problem mit REGEXP
 
Guten Morgen!

Ich habe ein bizarres Problem mit dem REGEXP-Operator in mySQL.
Auf dem Server läuft eine Datenbank, die eine Tabelle mit Einträgen dieser Art enthält:
Code:
id |  url
... |  (((.*)\.)|)hausaufgaben\.de(.*)
Dieser Reguläre Ausdruck soll prüfen, ob es sich bei der eingegebenen Seite um einen Subdomain und/oder Unterordner oder sogar um den Domain selbst handelt. In diesem Fall sollten folgende Sachen gefunden werden:
Code:
hausaufgaben.de
login.hausaufgaben.de
hausaufgaben.de/login
login.hausaufgaben.de/login
...
Nicht gefunden werden sollen solche Sachen:
Code:
mathehausaufgaben.de
hausaufgaben.de.wikipedia.org
...
Die Abfrage schaut so aus:
SQL-Code:
SELECT id FROM pages WHERE $url REGEXP pages.url
Ist der Reguläre Ausdruck wie oben, findet er gar nichts. Ändere ich ihn auf
Code:
((.*\.))*hausaufgaben\.de(.*)
findet er zwar alle oben angegebenen, allerdings auch mathehausaufgaben.de etc...

Ich weiß wirklich nicht mehr, was ich machen soll. Hat jemand von euch eine Idee?

Gruß, Moritz

Basilikum 30. Apr 2005 13:07

Re: mySQL: Bizarres Problem mit REGEXP
 
Zitat:

Zitat von MySQL Reference Manual :: G MySQL Regular Expressions
To use a literal instance of a special character in a regular expression, precede it by two backslash (\) characters. The MySQL parser interprets one of the backslashes, and the regular expression library interprets the other.

http://dev.mysql.com/doc/mysql/en/regexp.html

Code:
^(.*\\.)*hausaufgaben\.de(/.*)?
(^ : Pattern muss gemäss RegExp beginnen)
(\\. = siehe Auszug aus dem Manual)

moritz 30. Apr 2005 15:18

Re: mySQL: Bizarres Problem mit REGEXP
 
Super, Danke! Ich mach es jetzt mit
Code:
^(.*\.)*hausaufgaben\.de(.*)?
Geht wunderbar :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz