Frage

Ich versuche, den folgenden regulären Ausdruck zu erhalten, um nur die Buchstaben aus einem Eingabefeld für alphanumerische Zeichen zu erfassen. Es wird jedoch immer die vollständige Zeichenfolge und keiner der Buchstaben von A bis Z zurückgegeben.

Was mache ich falsch?

Es müssen nur alle Buchstaben erfasst werden.Keine seltsamen Zeichen und keine Zahlen, nur A-Z und eine Zeichenfolge, die ich später verwenden kann.

// 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);

Meine Debug-Ausgabe lautet wie folgt:

TAXCODE= 647L

TAXCODE.length= 4

STC (vor Regex)=

STC (nach Regex)= 647L

War es hilfreich?

Lösung

Wenn Sie immer nur Buchstaben an einem Ende haben, können Sie diese verwenden.

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

Wenn Buchstaben gemischt werden, erhalten Sie ein Array, mit dem Sie spielen können.

NSString *TAXCODE =@"L6J47L";
NSArray *newcodeArray =  [TAXCODE componentsSeparatedByCharactersInSet:[NSCharacterSet decimalDigitCharacterSet]];

Andere Tipps

Ich denke, Sie müssen die Perl-Syntax auf dem regulären Ausdruck ablegen.Verwenden Sie @ "[^ A-Z]" als Übereinstimmungszeichenfolge.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top