2016-04-26 12 views
1

Ich möchte erkennen, ob URL Sprachcode hat. Es kann entweder en oder sk sein, aber es wird in Zukunft mehr geben.Enthält einen Teil der Zeichenfolge oder Ende der Zeile

Diese sind URLs ich versuchen wollen:

1 - http://localhost/website/en 
2 - http://localhost/website/endorphin 
3 - http://localhost/website/en/ 
4 - http://localhost/website/en/test 
5 - http://localhost/website/sk/entity 

So zum Beispiel, ich möchte wissen, ob URL en Sprachcode hat. Ich versuche URLs oben geschrieben habe und die Ergebnisse sind:

1 - false - should be TRUE 
2 - false - OK 
3 - true - OK 
4 - true - OK 
5 - false - OK 

Und Muster habe ich versucht: /(\/en[\/{0,1}|\b])/mi.

Live-Vorschau: PHP Sandbox

+2

für [en oder sk] (https://regex101.com/r/qM8bT9/1) – rock321987

+0

Danke, Sie sollten es als Antwort senden. – debute

+0

@ rock321987 Ich bin nicht wirklich gut in Regex, ich wollte eine '/' oder keine auswählen. Ich weiß, lahm. – debute

Antwort

2

Die folgende Regex für en oder sk arbeiten

\/(en|sk)(?:\/|$) 

Regex Demo

Regex Pannen

\/ #Match a/literally 
(#Capturing group 
    en #Match en literally 
    | #Alternation(OR) 
    sk #Match sk literally 
) 
(?: #Non-capturing group 
    \/ #Match a/literally 
    | Alternation(OR) 
    $ #End of string 
) 
+1

'/' und '$' sind Wortgrenzen, so dass beide Ihrer '' 'sind nicht notwendig. –

+0

@ Jordan machte das gleiche..danke – rock321987

Verwandte Themen