Как заставить регулярное выражение захватить все буквы из целевой строки c? - PullRequest
0 голосов
/ 18 марта 2011

Я пытаюсь получить следующее регулярное выражение для захвата только букв из буквенно-цифрового поля ввода символов, однако оно всегда возвращает полную строку, а не любую из букв A-Z.

Что я делаю не так?

Нужно только захватить все буквы. Никаких странных символов и никаких цифр, просто A-Z и поместите его в строку, чтобы я мог использовать ее позже.

// A default follows
NSString *TAXCODE = txtTaxCode.text;

// Setup default for taxcode
if ([TAXCODE length] ==0)
{
    TAXCODE = @"647L";
}


NSError *error = NULL;
NSRegularExpression *regex;

regex = [NSRegularExpression regularExpressionWithPattern:@"/[^A-Z]/gi" 
                                                  options:NSRegularExpressionCaseInsensitive
                                                    error:&error];

NSLog(@"TAXCODE = %@", TAXCODE);
NSLog(@"TAXCODE.length = %d", [TAXCODE length]);


NSLog(@"STC (before regex) = %@", STC);


STC = [regex stringByReplacingMatchesInString:TAXCODE
                                      options:0
                                        range:NSMakeRange(0, [TAXCODE length])
                                 withTemplate:@""];
NSLog(@"STC (after regex) = %@", STC);

Мой вывод отладки выглядит следующим образом:

TAXCODE = 647L

TAXCODE.length = 4

STC (до регулярного выражения) =

STC (после регулярного выражения) = 647L

Ответы [ 2 ]

1 голос
/ 18 марта 2011

Если у вас когда-либо будут буквы на одном конце, вы можете использовать.

 NSString *TAXCODE =@"647L";
NSString *newcode =  [TAXCODE stringByTrimmingCharactersInSet:[NSCharacterSet decimalDigitCharacterSet]];

Если буквы смешаны, вы можете получить массив, с которым потом сможете играть.

NSString *TAXCODE =@"L6J47L";
NSArray *newcodeArray =  [TAXCODE componentsSeparatedByCharactersInSet:[NSCharacterSet decimalDigitCharacterSet]];
1 голос
/ 18 марта 2011

Я думаю, вам нужно отбросить синтаксис perl в регулярном выражении.Используйте @ "[^ AZ]" в качестве строки соответствия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...