Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
Kommentar vom Moderator masterG am 24.02.2013 um 18:37:45 Uhr
Ich hab deine RegEx in einen Codeblock gepackt. Bitte Formatierungshilfe beachten.
GELÖST

Regex Ausdruck für Urls (Teil 2)

Frage Entwicklung PHP

Mitglied: ChrisFah

ChrisFah (Level 1) - Jetzt verbinden

24.02.2013, aktualisiert 18:36 Uhr, 1948 Aufrufe, 3 Kommentare

Erneuter Hilferuf für die Auflösung bei Urls

Ich verwende nun Dank der Hilfe eines Users dieses Forums für das Spliten der Urls folgenden Regex Ausdruck:

01.
'#^\/(?P<lang>de|en|fr|it)?\/?(?P<func>item|cat|fn|content|admin|my)?\/?(?P<text>\w)?\/?(?P<id_1>\d)?,?(?P<id_2>\d)?(?P<request>\?.*)?#i'
Prinzipiell klappt es so auch, jedoch werden auch Urls akzeptiert, bei denen in den jeweiligen Ausdrücken neben den angegebenen auch andere Zeichen vorkommen. Also zB "dexyz" anstelle von "de", oder "adminxyz" anstelle von "admin". Auch das Begrenzen der Länge mit {2} für die Sprache bringt nichts, da dann die restlichen zeichen aufgrund das optionaolen Slash in die <func> rutschen, was ja wiederum falsch ist...

Meine Frage: Gibt es ein Suchmuster, bei dem die angegebenen Buchstaben exakt übereinstimmen müssen, und nicht nur darin enthalten sein müssen, wie in meinem Regex Ausdruck (also quasi ein "if (Ausdruck == 'de' || Ausdruck == 'en' usw)" ?

Lg, Chris
Mitglied: dog
24.02.2013, aktualisiert um 18:50 Uhr
In deiner Regex ist jeder Teil unabhängig von den anderen:

/dexyz

wird gematcht von

'# ^\/(?P<lang>de|en|fr|it)?\/?(?P<func>item|cat|fn|content|admin|my)?\/?(?P<text>\w)?\/?(?P<id_1>\d)?,?(?P<id_2>\d)?(?P<request>\?.*)?(implizites match)#i'

c6fbc7ee35b16c89fdf75f63f8f66aac - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: hmarkus
24.02.2013, aktualisiert um 19:44 Uhr
Hallo,

Du solltest Dich mal ausgiebig mit Regulären Ausdrücken beschäftigen. Ich empfehle das Buch "Reguläre Ausdrücke" von Jeffrey E. F. Friedl (wenn man regex einmal begriffen hat benutzt man sie ständig ).

Für Deine Aufgabe könnte \b als Wortgrenze in Frage kommen (\B ist entsprechend "keine Wortgrenze"). Wird also nur das Wort "admin" gesucht, dann könnte
/\badmin\b/ 
passen.

Ich hab mir nochmal Deine URL-Beispiele aus dem Thread von gestern angesehen, wenn klar ist, dass die Zeichen '.' und '/' die Wörter begrenzen, dann kannst Du auch suchen mit
/[./](admin)[./]/
Ich arbeite normalerweise mit Perl und hab von PHP keine Ahnung. Jedoch wäre mein Ansatz für das Aufspalten einer URL folgender
@url = split /\//, $line ;
das heißt, ich würde die URL an den '/' (Slashes) aufspalten und alles was dazwischen ist in ein Array packen. Dann erhält man aus
www.domain.com/de/kategoriename/Artikelname/12345,98765
das Array mit dem Inhalt
www.domain.com  
de  
kategoriename  
Artikelname  
12345,98765
was erheblich einfacher zu verarbeiten ist.

Markus
Bitte warten ..
Mitglied: ChrisFah
24.02.2013 um 19:05 Uhr
Hallo, du hast Recht.
Wenn ich die Uri über die / splitte, dann umgeh ich das ganze Problem mit den optionalen Slashes. Das mit den \b hab ich übrigens schon probiert, klappt nicht wie gewünscht.

Danke für den Tipp!!!
Lg, ChrisFah
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Word Ausdruck graue Striche bei einer geschützten Ansicht (5)

Frage von blacky85 zum Thema Microsoft Office ...

Batch & Shell
gelöst RegEx in M3U (4)

Frage von mguenth83 zum Thema Batch & Shell ...

Ubuntu
gelöst Regex - zusammengefasste Wörter finden und korrekt trennen??? (6)

Frage von takitano zum Thema Ubuntu ...

Datenschutz
Die EU Datenschutz Grundverordnung - Teil 1 (1)

Link von Ausserwoeger zum Thema Datenschutz ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst ZIP-Archive nach Dateien durchsuchen und Pfade ausgeben (33)

Frage von evinben zum Thema Batch & Shell ...

Router & Routing
Routingproblem in Homerouter-Kaskade mit Raspi (20)

Frage von Oldschool zum Thema Router & Routing ...

Server
Freenas schlechte Schreib Performance bei NFS (16)

Frage von janosch12 zum Thema Server ...

C und C++
Methode multiple return values (8)

Frage von mayho33 zum Thema C und C ...