2010-08-07 5 views
0

J'ai URL dans le format suivant:Matching jusqu'à ce que la première barre oblique non suivie d'une barre oblique

STATIC_PATH=http://abc.com/0123/3456 
STATIC_PATH=http://xyz.com 

Je veux correspondre jusques et y compris la première barre oblique pas immédiatement suivie d'une barre oblique. Dans la première URL qui correspondrait à http://abc.com/, dans la deuxième URL, ce serait http://xyz.com. Pouvez-vous me donner l'expression rationnelle pour cela? Je vous remercie.

+0

Quelle langue ?? – NullUserException

+0

Peu importe, je suis juste à la recherche de la regex. – soulonfire

Répondre

4
[^/]*(/(/[^/]*/?)?)? 

tout match jusqu'à la première barre oblique inverse, puis qu'il corresponde à celui backslash (si elle existe), une seconde barre oblique inverse immédiatement après (si elle existe), puis tout jusqu'à la troisième barre oblique inverse.

0

Dans votre langue préférée, faites quelques séparations sur la chaîne. par exemple python

>>> url="STATIC_PATH=http://abc.com/0123/3456" 
>>> url.split("=") 
['STATIC_PATH', 'http://abc.com/0123/3456'] 
>>> url.split("=")[1] 
'http://abc.com/0123/3456' 
>>> url.split("=")[1].split("/") 
['http:', '', 'abc.com', '0123', '3456'] 
>>> url.split("=")[1].split("/")[0:3] 
['http:', '', 'abc.com'] 
>>> '/'.join(url.split("=")[1].split("/")[0:3]) 
'http://abc.com' 
0

Je l'ai compris. Je fais un lookback négatif et un lookahead négatif. ^. ? ((? | [^ M] $)

Questions connexes