2012-08-01 27 views
0

我正則表達式,但在以往任何時候我搜索我得到的代碼,並解釋現在驗證電子郵件,我必須做這樣的事情關於iPhone

文件內容的工作正則表達式是這樣的(文件甲酸可.RTF,.TXT ...等)

形式這個文件現在我想提取的languageC,丹尼斯里奇,這本書是很好的學習C語言。我已經通過使用NSString,NSScanner和NSRange實現了這一點,但現在我想用regularexpressions來實現這一點。

+0

參見['NSRegularExpression'](https://developer.apple.com/library/ios /#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html)。如果你在這裏搜索或搜索,我相信這個問題已經被多次詢問和回答。如果您嘗試並遇到問題,請告訴我們您的代碼,我們很樂意提供幫助。 – Rob 2012-08-01 07:18:04

回答

1
NSString *regexStr = @"\[Title:([.]+)\][ ]+\[Author:([.]+)\][ ]+\[Description:([.]+)\]"; 

NSError *error; 
NSRegularExpression *testRegex = [NSRegularExpression regularExpressionWithPattern:regexStr options:0 error:&error]; 

if(testRegex == nil) NSLog(@"Error making regex: %@", error); 

NSTextCheckingResult *result = [testRegex firstMatchInString:test options:0 range:NSMakeRange(0, [test length])]; 

NSRange range = [result rangeAtIndex:1]; // This will give you Title, 
+0

Thanx我會嘗試代碼的和平... – 2012-08-01 07:39:40

0

你應該使用這樣的正則表達式:

/\[[^:]+:([^]])\]/ 

如:

NSError *error; 
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\[[^:]+:([^]])\]" options:0 error:&error]; 
NSArray* matches = [regex matchesInString:YOUR_STR options:0 range:NSMakeRange(0, [YOUR_STRING length]); 
+0

Thanx我會試試看... – 2012-08-01 07:38:38