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, 1960 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
Windows Server
Serie: Active Directory Zertifikatsdienste (Teil 1-8)

Link von pewa2303 zum Thema Windows Server ...

Batch & Shell
gelöst Teil eines Strings als Variable setzen (2)

Frage von tHe-jAy zum Thema Batch & Shell ...

Batch & Shell
gelöst Bash Nur Zahlen ausgeben regex (11)

Frage von Marabunta zum Thema Batch & Shell ...

Batch & Shell
gelöst Einen Teil eines Textpfades aus einer TXT per Batch entfernen!? (3)

Frage von kampen zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Verschieben von Servergespeicherten Profilen an einen anderen Speicherort

Erfahrungsbericht von Enriqe zum Thema Windows Server ...

Windows 10

Plattformdienst für unbekannte Geräte (7023)

Tipp von KMUlife zum Thema Windows 10 ...

Administrator.de Feedback

Umgangsformen auf der Seite

(16)

Information von Frank zum Thema Administrator.de Feedback ...

Heiß diskutierte Inhalte
Windows Server
Windows Server Komplettspiegelung (16)

Frage von pdiddo zum Thema Windows Server ...

Batch & Shell
gelöst Dir tc Befehl unter Windows 10 macht Probleme (14)

Frage von sugram zum Thema Batch & Shell ...

Windows Server
Windows Server 2016 RDS Remoteapp Anzeigefehler (11)

Frage von qlnGenius zum Thema Windows Server ...