Dies scheint eine einfache Frage zu sein, aber ich bin zu kämpfen mit Gefräßigkeit (glaube ich), und ich kann ein offensichtliches Beispiel nicht gefunden:Einfacher PCRE Regex
die folgende Zeichenfolge Gegeben:
text/html; text/xml; text/json
Wie kann ich den 'ersten Untertyp' ('html' im obigen Beispiel) abrufen?
Ich habe alle möglichen Kombinationen wie folgt versucht:
(.*)\/(.*)[ |;]
und die zweite Variable zu erhalten versuchen.
Ich weiß, dass die Zeichenfolge immer mindestens eine Saite in Form
aaa/bbb
haben werden, und dass es entweder sein kann, oder es kann durch ein Semikolon (mit möglichen Leerzeichen zwischen ihnen) folgen und mehr Daten (die ich ignorieren kann - ich brauche nur den ersten Subtyp). So sind die möglichen Optionen könnte so aussehen:
text/html
text/html; text/xml
text/html ; text/xml ; application/json
Ich hatte gehofft, es wie der Suche nach dem ersten Schrägstrich so einfach war und dann alles nehmen, um entweder nach, dass bis ein leeres oder ein Semikolon oder das Ende der string (was ich meine Regex dachte), aber ich bin nicht genug in Regex.
Zur Klarstellung muss dies ein PCRE-kompatiblen regulären Ausdruck sein, wenn das hilft/behindert Dinge ...
'\/[;]' - faul Matching verwenden (*.?) (*.?). Oder '[^ \ /] + \/(\ S +)' (beide mit 'preg_match', wenn es für PHP ist) –