Objective C中有哪些常用的正则表达式?

我想在Objective C中使用正则表达式,但是不知道哪些是常用的。请问各位老师,Objective C中有哪些常用的正则表达式呢?是否有一些特定的表达式可用于匹配邮箱、手机号、身份证号码等常见数据类型?希望能够得到详细的解答和示例代码,谢谢!

提问时间:2023-06-12 10:55:25 编辑时间:2023-06-12 10:55:27 提问者: 梦之蓝
  • Phoenix_Fighter
    8

    在Objective C中,常用的正则表达式有:

    1. 匹配数字:\d

    例如:NSString *regex = @"\d+";

    1. 匹配字母:[a-zA-Z]

    例如:NSString *regex = @"[a-zA-Z]+";

    1. 匹配邮箱:\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*

    例如:NSString regex = @"\w+([-+.]\w+)@\w+([-.]\w+)\.\w+([-.]\w+)";

    1. 匹配手机号码:1[3-9]\d{9}

    例如:NSString *regex = @"1[3-9]\d{9}";

    1. 匹配身份证号码:\d{17}[\dxX]

    例如:NSString *regex = @"\d{17}[\dxX]";

    示例代码如下:

    NSRegularExpression *reg = [[NSRegularExpression alloc] initWithPattern:regex options:NSRegularExpressionCaseInsensitive error:nil];

    NSTextCheckingResult *result = [reg firstMatchInString:str options:NSMatchingReportCompletion range:NSMakeRange(0, [str length])];

    if (result) {

    // 匹配到了

    } else {

    // 没有匹配到

    }

    其中,regex为上述正则表达式,str为要匹配的字符串,result为匹配结果对象。使用NSRegularExpression类的firstMatchInString方法可以获取匹配结果。

    回答时间:2023-06-12 10:55:30