iPhone中url的正则表达式

时间:2012-09-14 06:27:34

标签: iphone ios ios5 ios4

我使用正则表达式来验证网站地址。但它不起作用,因为它的格式在iPhone中不正确。它的逻辑几乎是正确的。任何人都可以在iPhone中为我重建这个正则表达式吗?

(?<http>(http:[/][/]|www.)([a-z]|[A-Z]|[0-9]|[/.]|[~])*)

5 个答案:

答案 0 :(得分:6)

看看这个

NSString *urlRegEx =
@"(http|https)://((\\w)*|([0-9]*)|([-|_])*)+([\\.|/]((\\w)*|([0-9]*)|([-|_])*))+";

答案 1 :(得分:1)

使用这个波纹管方法

- (BOOL) validateUrl: (NSString *) stringURL {
    NSString *urlRegEx =
    @"(http|https)://((\\w)*|([0-9]*)|([-|_])*)+([\\.|/]((\\w)*|([0-9]*)|([-|_])*))+";
    NSPredicate *urlTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", urlRegEx]; 
    return [urlTest evaluateWithObject:stringURL];
}

希望这能帮到你......

:)

答案 2 :(得分:1)

对于任何有接受答案重复问题的人来说,这是我使用的版本:

(https?)://(([\\w\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\-\\+\\=\\(\\)\\[\\]\\{\\}\\?\\<\\>])*)+([\\.|/](([\\w\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\-\\+\\=\\(\\)\\[\\]\\{\\}\\?\\<\\>])*))+

接受的答案regexp的问题是: \ w - 已经包含&#34; _&#34;和数字

对于有&#34; - &#34;的网址失败在第一个点之后

答案 3 :(得分:1)

这将捕获http / https / plain subdomain.domain.suffix链接: (根据Grzegorz Krukowski的好答案)

@"((https?)://)?(([\\w\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\-\\+\\=\\(\\)\\[\\]\\{\\}\\?\\<\\>])*)+([\\.|/](([\\w\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\-\\+\\=\\(\\)\\[\\]\\{\\}\\?\\<\\>])+))+"

答案 4 :(得分:1)

就我而言,这是明确的表达方式:

NSString *URLRegEx = 
@"((https?://www[.][a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9].{2,}[.][a-zA-Z0-9]{2,})|(www[.][a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9].{2,}[.][a-zA-Z0-9]{2,})|([a-zA-Z0-9\-]{2,}[.][a-zA-Z0-9]{2,}))";

匹配的示例案例:

不匹配的情况:

等...

如果您不想允许所有这些情况,您只需要从表达式中删除它们。