常用的 ICU 格式正则表达式

来源:互联网 发布:淘宝达人怎么找 编辑:程序博客网 时间:2024/05/22 13:30

Network and URL

DescriptionRegexHTTP\bhttps?://[a-zA-Z0-9\-.]+(?:(?:/[a-zA-Z0-9\-._?,'+\&%$=~*!():@\\]*)+)?HTTP\b(https?)://([a-zA-Z0-9\-.]+)((?:/[a-zA-Z0-9\-._?,'+\&%$=~*!():@\\]*)+)?HTTP\b(https?)://(?:(\S+?)(?::(\S+?))?@)?([a-zA-Z0-9\-.]+)(?::(\d+))?((?:/[a-zA-Z0-9\-._?,'+\&%$=~*!():@\\]*)+)?E-Mail\b([a-zA-Z0-9%_.+\-]+)@([a-zA-Z0-9.\-]+?\.[a-zA-Z]{2,6})\bHostname\b(?:[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}?[a-zA-Z0-9]\.)+[a-zA-Z]{2,6}\bIP\b(?:\d{1,3}\.){3}\d{1,3}\bIP with Optional Netmask\b((?:\d{1,3}\.){3}\d{1,3})(?:/(\d{1,2}))?\bIP or Hostname\b(?:(?:\d{1,3}\.){3}\d{1,3}|(?:[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}?[a-zA-Z0-9]\.)+[a-zA-Z]{2,6})\b

上面的正则表达式实际书写时需把一个反斜杠替换成两个反斜杠,如匹配 E-Mail 时要写成

1
2
3
4
5
NSString*regex = @"\\b([a-zA-Z0-9%_.+\\-]+)@([a-zA-Z0-9.\\-]+?\\.[a-zA-Z]{2,6})\\b";
NSLog(@"Regex: %@", regex);
if([@"unmi@scalau.com"isMatchedByRegex:regex]){
    NSLog(@"Valid email address");
}

上面的代码输出:

Regex: \b([a-zA-Z0-9%_.+\-]+)@([a-zA-Z0-9.\-]+?\.[a-zA-Z]{2,6})\b
Valid email address

这和 Java 的正则表达式一样,也就是要写成 NSLog 输出的样子,也就是转义的转义,如果是 \- 或 \. 编译时会提示:

Lexical or Preprocessor Issue Unknown escape sequence "\."
Lexical or Preprocessor Issue Unknown escape sequence "\-"

但执行时不会报错,只是匹配不成功.

记住,RegexKitLite 的完全帮助手册尽在:http://regexkit.sourceforge.net/RegexKitLite/

原创粉丝点击