/ / NSString: Wyrażenie regularne dla blabla.DDD + DDDD gdzie D jest cyfrą - cel-c, ios, regex, nsstring

NSString: Regular Expression dla blabla.DDD + DDDD gdzie D jest cyfrą - cel-c, ios, regex, nsstring

Potrzebuję wyrażenie regularne, aby sprawdzić, czy ciąg ma ten wzór:

[niektóre losowe znaki] .DDD + DDDD

może zaczynać się od losowych znaków, ale się kończyz kropką. następnie trzy cyfry, a następnie znak plus, a następnie cztery cyfry. Jak mogę skonstruować wyrażenie regularne i sprawdzić, czy NSString ma ten wzór?

Dzięki!

Odpowiedzi:

0 dla odpowiedzi № 1

Poprawne wyrażenie to ^[^.]*.[0-9]{3}+[0-9]{4}$

Obie pozostałe odpowiedzi zapomniały uciec przed niektórymi postaciami.


2 dla odpowiedzi nr 2

To powinno być tym, czego szukasz.

NSString *regex = @"(^[^.]*.[0-9]{3}+[0-9]{4}$)";
NSPredicate *pred = [NSPRedicate predicateWithFormat:@"SELF MATCHES %@", regex];
if ([pred evaluateWithObject:mystring])
{
//do something
}

Istnieje wiele dobrych generatorów Regex do testowania twoich wyrażeń regularnych. Dawny.: http://rubular.com


-1 dla odpowiedzi nr 3

Wyrażenie ^ [^.] *. [0-9] {3} + [0-9] {4} $ powinno to zrobić.

Znak ^ oznacza początek ciągu znaków [^.] *. oznacza zero lub więcej znaków bez kropki, po których następuje kropka [0-9] {3} oznacza 3 cyfry (0-9) + oznacza plus [0-9] {4} oznacza 4 cyfry $ Oznacza koniec łańcucha