首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在NSString (BBCode)中使用RegexKitLite查找URL

在NSString (BBCode)中使用RegexKitLite查找URL
EN

Stack Overflow用户
提问于 2010-08-27 14:38:59
回答 2查看 929关注 0票数 0

嗨,

我有一个NSString,它包含了很多文本。文本内部有一个iTunes URL。该URL被BBCode掩盖。如何提取普通URL?

抱歉,但我的判断力真的很差。

案文如下:

Lorem ipsum dolor,consetetur sadipscing elitr,sed diam非ut eirmod tempor sed dolore magna aliquyam erat,sed diam voluptua。在ver itunes title="Babyphon" Lorem ipsum dolor,consetetur sadipscing elitr,et diam nonumy eirmod title=et ut labore et dolore magna aliquyam erat,sed diam voluptua。在.

我的第一次尝试:

代码语言:javascript
复制
NSString *regEx = @"(link=?).*"; 
NSString *match = [myText stringByMatching:regEx]; 

if ([match isEqual:@""] == NO) { 
    NSLog(@"Match Ituneslink; %@", match); 
}
else
{ 
    NSLog(@"Not found."); 
}

结果:

link="http://www.appsnight.tv/redirect.php?url=http%3A%2F%2Fitunes.apple.com%2Fde%2Fapp%2Fmare-fernweh%2Fid379051618%3Fmt%3D8%26uo%3D4“title="Mare"]

太费劲了,我只需要itunes链接:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-13 14:05:27

我找到了这个解决方案。

代码语言:javascript
复制
 NSString *regEx = @"(link=\"?)[a-zA-Z0-9:/.?=%-]*";
 NSString *match = [myText stringByMatching:regEx]; 
票数 0
EN

Stack Overflow用户

发布于 2010-08-27 15:00:25

如果计划总是相同的,你可以这样做:

代码语言:javascript
复制
NSRange begin = [myText rangeOfString:@"link="];
NSRange end = [myText rangeOfString:@" title="];

使用这两个区域的位置组件创建一个新的区域:

代码语言:javascript
复制
NSRange linkRange;
linkRange.location = begin.location + 6;
linkRange.length = (end.location - 1) - (linkRange.location);

你可以这样做:

代码语言:javascript
复制
NSString *myLink = [myText substringWithRange:linkRange];

我还没有试过你的例子文本,也许我弄错了偏移量(+6和-1),你需要调整它们。希望这能帮上忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3585264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档