2012-01-18 16 views
8

मैं मैच के लिए कोशिश कर रहा हूँ: रेगुलर एक्सप्रेशन से मेल स्लेश

/app 
/app/ 
/app/** 

लेकिन नहीं:

/app** 

स्लैश वैकल्पिक किया जाना चाहिए। मैं इसे काम करने के लिए काफी नहीं मिल सकता है।

^/app/([^/]*)/? मैचों /app/ और /app/**, लेकिन /app नहीं।

+0

'' ** में '/ ऐप्स/**' की तरह किसी भी पथ का मतलब '/ ऐप्स/एक/path// something' को हो सकता है? या '**' सचमुच? – lkuty

+0

हां, कोई भी पथ मेल खाता है (जैसे आपका/ऐप/ए/पथ/टू/कुछ)। क्या वहां कुछ प्रकार का रेगेक्स है जो कहता है "या तो यहां समाप्त होता है या इस चरित्र (/) और कुछ भी है। मैंने कोशिश की है कि एक के साथ समाप्त होता है या लेकिन यह काम नहीं करता है। – MoatMonster

उत्तर

7

इस प्रयास करें:

^\/app((\/\w+)+|\/?)$ 
+0

यह बहुत करीब है! लेकिन चूंकि यह केवल शब्द वर्णों से मेल खाता है,/ऐप/जो भी/दूसरा/पथ मेल नहीं खाता है। मैं देखता हूं कि आप कहां जा रहे हैं। मैं इसके साथ काम करूंगा और देख सकता हूं कि मैं किसके साथ आ सकता हूं। धन्यवाद! – MoatMonster

+6

उस स्थिति में, '# ^/ऐप (/.*)?$#' – cmbuckley

+1

वाह जैसे कुछ आसान प्रयास करें। वह पूरी तरह से मेरे चेहरे के सामने पूरी तरह से था। बहुत बहुत धन्यवाद, @cbuckley! – MoatMonster

5

यह काम करेगा:

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

संपादित करें: यह भी काम करेगा:

^/app(/.*)? 
+0

धन्यवाद, लेकिन यह अभी भी मेल/ऐप ** – MoatMonster

+1

नहीं, यह वैकल्पिक भाग में अग्रणी स्लैश की वजह से नहीं होगा। –

+0

लेकिन यह/app/foo/bar की अनुमति नहीं देगा। – cmbuckley

0

आप इस प्रयास किया है:

^/app(/[^/]+)*/? 

I'not के बारे में निश्चित ** - बात, लेकिन क्या आपको वास्तव में ऐसा कुछ करने की आवश्यकता हो सकती है ???

^/app/?(/[^/]+)*/?$ 
+0

होना चाहिए धन्यवाद लेकिन यह अभी भी मेल/ऐप ** होगा। मैं बिल्कुल/ऐप,/ऐप /, या/ऐप/कुछ भी मैच करना चाहता हूं **। मैं रेगेक्स को छूने के लिए संघर्ष कर रहा हूं जो कहता है "यहां आपके पास एक/या अंत होना चाहिए"। – MoatMonster

+0

** यहां क्या है? कुछ यादृच्छिक वर्ण या दो लगातार *? – Mithrandir

+0

कोई यादृच्छिक चरित्र। विवरण की कमी के लिए खेद है। – MoatMonster

0
^/(app1|app2)(?:/(.*))?$ 

से मेल खाता है सब नीचे

/app1 या /app1/ या /app1/whatever
/app2 या /app2/ या /app2/whatever

^/app(?:/(.*))?$ 

से मेल खाएगी
/app या /app/ या /app/whatever

संबंधित मुद्दे