17

所以我想我需要一个正则表达式来做到这一点,但我还没有用目标 c 做任何正则表达式,而且我已经有一年没有写过正则表达式语句了。

我认为它应该像 ((?=.*[0-9]).{7,1000})

如何将其放入客观的 c 字符串比较并评估结果?

我的正则表达式也正确吗?

4

1 回答 1

68

虽然正则表达式可能会起作用,但还有另一种方法:

NSString *str = // some string to check for at least one digit and a length of at least 7
if (str.length >= 7 && [str rangeOfCharacterFromSet:[NSCharacterSet decimalDigitCharacterSet]].location != NSNotFound) {
    // this matches the criteria
}

这段代码实际上检查的不仅仅是 0-9。它也处理来自其他语言的数字。如果你真的只想要 0-9 然后替换:

[NSCharacterSet decimalDigitCharacterSet]

和:

[NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
于 2012-10-20T03:23:53.137 回答