Как проверить, содержит ли строка только алфавитно-цифровые символы в цели C?

Одна платформа, которую я рассматриваю, была бы для платформы блоггинга. Так как примерно любое возможное представление данных, которые Вы хотели бы, будет отсортировано по дате, я думал об этой структуре:

Один каталог на узел содержания:

./content/YYYYMMDDHHMMSS/

Подкаталоги каждого узла включая

/tags  
/authors  
/comments  

, А также простые текстовые файлы в каталоге узла для пред - и постпредставленное содержание и т.п..

Это позволило бы простому вызову PHP glob() (и вероятно реверсирование массива результата) запрашивать на примерно чем-либо в структуре содержания:

glob("content/*/tags/funny");  

Был бы обратные каналы включая все статьи, отмеченные "забавный".

47
задан tshepang 15 February 2014 в 22:44
поделиться

4 ответа

If you don't want to bring in a regex library for this one task...

NSString *str = @"aA09";
NSCharacterSet *alphaSet = [NSCharacterSet alphanumericCharacterSet];
BOOL valid = [[str stringByTrimmingCharactersInSet:alphaSet] isEqualToString:@""]; 
86
ответ дан 26 November 2019 в 19:11
поделиться

Это будет работать:

@implementation NSString (alphaOnly)

- (BOOL) isAlphaNumeric
{
    NSCharacterSet *unwantedCharacters = 
       [[NSCharacterSet alphanumericCharacterSet] invertedSet];

    return ([self rangeOfCharacterFromSet:unwantedCharacters].location == NSNotFound);
}

@end
61
ответ дан 26 November 2019 в 19:11
поделиться

You can use this regular expression library for ObjectiveC. Use the following regex to match:

^[a-zA-Z0-9]*$
9
ответ дан 26 November 2019 в 19:11
поделиться

Мне очень нравится RegexKit Lite Framework. Он использует библиотеку регулярных выражений ICU, которая уже включена в OSX и безопасна для юникода.

NSString *str = @"testString";
[str isMatchedByRegex:@"^[a-zA-Z0-9]*$"]; // strict ASCII-match
[str isMatchedByRegex:@"^[\p{L}\p{N}]*$"]; // unicode letters and numbers match
2
ответ дан 26 November 2019 в 19:11
поделиться