我有以下网址:
以及以下正则表达式:
NSRegularExpression * regexTags = [NSRegularExpression regularExpressionWithPattern:@"tags/\\[a-zA-Z0-9]+/media/recent" options:NSRegularExpressionCaseInsensitive error:&error];
NSArray* tagMatch = [regexTags matchesInString:self.currentRequestURL_
options:0 range:NSMakeRange(0, [self.currentRequestURL_ length])];
为什么这不匹配正则表达式?
答案 0 :(得分:1)
摆脱表达式的双反斜杠。你有:
@"tags/\\[a-zA-Z0-9]+/media/recent"
不应该是:
@"tags/[a-zA-Z0-9]+/media/recent"
双反斜杠转换为单个反斜杠,这意味着它会从正方形支架中跳出。这意味着表达式在字符串中查找实际的开放方括号,而不是打开字符组。
答案 1 :(得分:1)
您在REGEX本身中有错误
正则表达式
@"tags/\\[a-zA-Z0-9]+/media/recent"
匹配标记/ \ picoftheday / media / recent
但您需要 tags/[a-zA-Z0-9]+/media/recent
才能匹配标签/ picoftheday / media / recent
有一个有用的在线测试人员测试你的正则表达式是否匹配字符串http://regexpal.com/