我的问题非常小,但我无法解决。
我有2个facebook网址:
http://www.facebook.com/pages/的 Name_Of_Page / ID_OF_PAGE
http://www.facebook.com/的 Name_Of_Page
我需要使用NSRegularExpression
提取仅名称。
这是我的代码:
NSRegularExpression* FBregex = [NSRegularExpression regularExpressionWithPattern:@"((http|https)://)?([w]{3}\\.)?(facebook\\.com/(pages/)?)" options:0 error:&error];
NSString *result=[FBregex stringByReplacingMatchesInString:STRING_TO_EVALUATE options:0 range:NSMakeRange(0, [STRING_TO_EVALUATE length]) withTemplate:@""]
我需要删除要显示的页面的ID。有任何想法吗? 感谢。
答案 0 :(得分:0)
我以前没有使用过NSRegularExpressions,但如果它是Perl-Compatible,有几种方法可以达到你想要的效果。
这是lookbehind
方法。 Lookbehinds不捕获任何东西,它们只标记一个位置,所以匹配从字符类开始,并在它运行到单词边界时结束。
~(?<=pages/)[-A-Z0-9_.]+\b~i
这是Forget Everything
方法。 \K
告诉REGEX引擎要求pages/
存在,但是忘了它。因此,它具有与在字符类中开始捕获并在它运行到字边界时结束相同的效果。
~pages/\K[-A-Z0-9_.]+\b~i
这两种方法都只会为您提供页面名称。