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, 1966 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
Batch & Shell
gelöst Powershell Regex anders (1)

Frage von ukodus zum Thema Batch & Shell ...

Entwicklung
gelöst Verständnisproblem bei regex (7)

Frage von Kraemer zum Thema Entwicklung ...

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

Frage von mguenth83 zum Thema Batch & Shell ...

PHP
gelöst Php regex und Array (5)

Frage von Thomas91 zum Thema PHP ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (18)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
IP Adressen - Modem - Switch - Accesspoint (17)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
DNS ins mehreren Subnetzen (13)

Frage von joerg zum Thema Windows Netzwerk ...