我正在处理正则表达式,但我搜索的地方,我正在获取验证电子邮件的代码和解释,现在我必须做这样的事情
该文件的内容是这样的(文件格式可能是.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来实现这一点。
答案 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]);