0

我正在研究正则表达式,但是无论我在哪里搜索,我都会得到验证电子邮件的代码和解释,现在我必须做这样的事情

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

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

现在形成这个文件我想提取语言C,Dennis Ritchie,这本书很适合学习C语言。我已经通过使用 NSStrings、NSScanner 和 NSRange 实现了这一点,但现在我想使用正则表达式来实现这一点是可能的。

4

2 回答 2

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,
于 2012-08-01T07:22:08.237 回答
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]);
于 2012-08-01T07:22:09.593 回答