关于iPhone中的正则表达式

时间:2012-08-01 07:12:31

标签: iphone ios macos

我正在处理正则表达式,但我搜索的地方,我正在获取验证电子邮件的代码和解释,现在我必须做这样的事情

该文件的内容是这样的(文件格式可能是.rtf,.txt ......等)

[Title:languageC] [Author:Dennis Ritchie] [Description:this book is nice to learn the C language]

现在形成这个文件我想提取语言C,Dennis Ritchie,这本书很好学习C语言。我已经通过使用NSStrings,NSScanner和NSRange实现了这一点,但现在我希望使用regularrexpressions来实现这一点。

2 个答案:

答案 0 :(得分: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,

答案 1 :(得分:0)

你应该使用这样的正则表达式:

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

E.g:

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