तार जांच की जा रही जैसे लगते हैं निम्नलिखित (कोष्ठक के बीच खाली स्थान के नोटिस):कैसे रेगुलर एक्सप्रेशन कैप्चर समूह से छंटनी की जा खाली स्थान के कर सकते हैं?
[name] [address ] [ zip] [ phone number ]
अभिव्यक्ति मैं वर्तमान में उपयोग कर रहा हूँ ...
\[([^\])]*)\]
... सफलतापूर्वक के भीतर प्रत्येक पाठ कब्जा कोष्ठक, लेकिन यह भी प्रमुख और अनुगामी अंतरिक्ष पकड़ लेता है तो मैं अंत:
"name" "address " " zip" " phone number "
लेकिन क्या मैं की तलाश है:
"name" "address" "zip" "phone number"
रेगेक्स इन उदाहरणों में व्हाइटस्पेस को कैप्चर नहीं करने के लिए कैसे आश्वस्त हो सकता है? (एम्बेडेड खाली स्थान के के अपवाद के साथ - जैसे कि "फ़ोन नंबर" में शब्दों के बीच के रूप में।)
(नोट: मैं जानता हूँ कि मैं सिर्फ चर पर कब्जा कर लिया के बाद अभिव्यक्ति किया जाता है से यह ट्रिम सकता है, लेकिन मैं मैं इसे अभिव्यक्ति के संदर्भ में करने की कोशिश कर रहा हूं।)
किसी भी विचार के लिए धन्यवाद!
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\[([^\\])]*)\\]" options:0 error:nil];
NSString *string = @" [name] [address ] [ zip] [ phone number ] ";
NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length])
withTemplate:@"\n\n[$1]"]; //note: adding brackets back here just to make it easy to see if the space has been trimmed properly from the captured value
NSLog(@"\n\n%@", modifiedString);
यह मेरे लिए एक मनोरंजक प्रश्न की तरह है, के रूप में मैं वर्षों के लिए regex और ऑब्जेक्टिव-सी लेखन किया गया है, लेकिन मैं उन्हें पहले NSRegularExpression' का उपयोग कर 'द्वारा संयुक्त कभी नहीं किया है। :) –
धन्यवाद यह सही है! यदि आप NSRegularExpression के लिए नए हैं तो इसकी "enumerateMatchesInString: विकल्प: रेंज: उपयोगब्लॉक:" कुछ अवरोधक भलाई के लिए विधि: http://blog.kvnd.me/post/10186864667/regular-expressions-in-ios –
क्या है पहले दाएं कोष्ठक ")" अपरिपक्व? ऐसा लगता है कि इसके बिना काम करना है। –