मैं उद्देश्य-सी में नियमित अभिव्यक्ति लिख रहा हूं। क्या करता है? (बैकस्लैश प्रश्न चिह्न) भागने का मतलब मतलब है?
बचने का अनुक्रम \w
अवैध है और चेतावनी उत्सर्जित करता है, इसलिए नियमित अभिव्यक्ति /\w/
को @"\\w"
के रूप में लिखा जाना चाहिए; एस्केप अनुक्रम \?
valid, apparently, है और एक चेतावनी के उत्सर्जन नहीं करता है, इसलिए नियमित अभिव्यक्ति /\?/
@"\\?"
रूप में लिखा जा चाहिए (यानी, बैकस्लैश भाग निकले जाना चाहिए)।
प्रश्न अंक अदृश्य नहीं हैं \t
या \n
, तो \?
एक वैध भागने अनुक्रम क्यों है?
संपादित करें: स्पष्ट करने के लिए, मैं, परिमाणक के बारे में पूछ नहीं कर रहा हूँ मैं एक स्ट्रिंग एस्केप अनुक्रम के बारे में पूछ रहा हूँ। यही कारण है, यह एक चेतावनी उत्सर्जन नहीं:
NSString *valid = @"\?";
इसके विपरीत, इस एक चेतावनी ("अज्ञात एस्केप अनुक्रम '\ w'") का उत्सर्जन करता है:
NSString *invalid = @"\w";
इसका मतलब है कि आप मिलान करने की कोशिश कर रहे हैं (फ़ंक्शन के आधार पर) एक शाब्दिक '?'? – Jerry
संभावित डुप्लिकेट [क्यों \ "है?" में एक एस्केप अनुक्रम C/C++?] (http://stackoverflow.com/questions/19374878/why-is-an-escape-sequence-in-cc) (ऑब्जेक्टिव-सी सी से इस सुविधा को विरासत में है, तो यह वास्तव में है एक डुप्लिकेट।) –