我还没有在objective-c中使用正则表达式。我现在正在尝试做的是评估一个字符串,看它是否包含4或5个字符的重复模式 - 任何模式,都没关系。例如,像@"testA54RqA54Rq"
这样的字符串会从正则表达式返回一个真值,而像@"testA54Rq"
这样的字符串则不会。现在我只是生成所有可能的4和5字符子串并将它们相互匹配,但显然这是非常低效的。我在哪里可以找到有关如何在目标C中开始使用正则表达式的一些资源?如果有人在一个小例子之前处于这种情况会很好。
- 编辑 -
我还希望像@"testQWEr30BKRe40"
这样的东西返回true(4个字母的模式后跟2个数字)。我不确定这是否可行。
答案 0 :(得分:2)
你可能想看看:
我认为实际的正则表达式只是:(\\w{4,5})\\1
NSString *regexStr = @"(\\w{4,5})\\1";
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regexStr options:0 error:&error];
if ((regex==nil) && (error!=nil)) {
warn( @"Regex failed for: %@, error was: %@", string, error);
} else {
}
答案 1 :(得分:1)
对于精确模式,您可以使用正则表达式(.{4,5})\\1
如果你想做类别模式,例如4个字母后跟2个数字,那么你必须:
[a-zA-Z]
替换为X
)\\d
替换为0
)