2012-04-10 20 views
13

मैं Regex के साथ एक समस्या का सामना करना पड़ रहा हूँ ... मैं SharePoint URL से मेल करना पड़ा में Regex "कम से कम मैच" के साथ मैच कैसे .. मैं मैच के लिए "कम से कम" की तरहनेट

कुछ की जरूरत है:

http://aaaaaa/sites/aaaa/aaaaaa/ 

m = Regex.Match(URL, ".+/sites/.+/"); 

m.Value पूरी स्ट्रिंग के बराबर है ...

मैं इसे कैसे मेल खाते हैं और कुछ

http://aaaaaaa/sites/aaaa/ 

और कुछ भी नहीं कर सकते हैं ??

बहुत बहुत धन्यवाद!

उत्तर

19

.+, लालची है। यह .+? के लिए परिवर्तित करें और मैच जितनी जल्दी हो सके समाप्त हो जाएगा:

m = Regex.Match(URL, ".+/sites/.+?/"); 
6

रेगेक्स को सबकुछ मिलान करने का प्रयास करें, लेकिन बस सब कुछ के बजाय /। यह चरित्र वर्ग परमाणु [^] के रूप में उपयोग करके किया जाता है। तो यह रुकने से पहले संभव के रूप में कई अक्षर से मेल खाएगी

m = Regex.Match(URL, ".+/sites/[^/]+/"); 
+0

यह अभी भी मेल खाता है सब कुछ, आप इसे आलसी मुझे लगता है कि 'बनाने की जरूरत है +/साइटों/[^ /] + /' – Robbie

+0

@Robbie।? इसका परीक्षण करें, यह – JaredPar

+1

+1 काम करता है, ठीक है, मुझे लगता है कि यह पहली बार परीक्षण किया गया था (और स्पष्ट रूप से बूट करने की समझ की कमी) – Robbie