Porównaj ceny domen i usług IT, sprzedawców z całego świata

Regex dla kombinacji liter i cyfr ze znakami specjalnymi


Chcę wyrażenia regularnego z następującymi warunkami,
  • ciąg musi zawierać co najmniej jeden znak lub liczbę.
  • kombinacja może zawierać znaki specjalne, takie jak! @ # $% & amp; *.
  • długość linii musi być większa niż 7.

Na przykład ..
  • test1234
  • test@1234
  • 1234Test

Z góry dziękuję.
oto mój kod
NSPredicate *regex = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", @"^(?[0-9])(?[a-zA-Z]){7,}$"];BOOL isvalid = [regex evaluateWithObject:string];

niestety nie mogłem znaleźć wyrażenia regularnego, którego użyłem wcześniej.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jesteś blisko poglądów, które masz w drugim przykładzie w swoim komentarzu. Ta, którą masz, szuka cyfry
[0-9]
, ale mówi, że musi zaczynać się od tej cyfry (również bez sprawdzania twoich liter).
Spróbuj tego:
^ (? =. * [A-zA-Z \ d]. *) [A-zA-Z \ d! @ # $% & Amp; *] {7,} $
Za pomocą

przykłady, które podałeś
http://rubular.com/r/iwa8piuR5r
Zrobiłem z nim kilka testów. regex to połączenie dwóch znalezionych.
  • Sprawdź, czy jest co najmniej jedna litera lub cyfra
    ( =. * [A-zA-Z \ d]. *)
    . Dzięki
    . *
    zezwalasz na walidację w dowolnym miejscu wiersza, a nie tylko na początku. Następnie mówisz regexowi, aby sprawdził, zanim będzie kontynuowany. Potraktuj to jako instrukcję if, jeśli ciąg zawiera literę lub cyfrę w dowolnym momencie, kontynuuj.
  • Gdy upewnisz się, że istnieje litera lub cyfra (przynajmniej jedna w całym ciągu), dopasuj litery, cyfry i zestaw znaków specjalnych. co najmniej 7.
    [a-zA-Z \ d \! @ # \ $% & amp; \ *] {7,}
    . Ta część jest najłatwiejsza, ponieważ po prostu ustalasz zasady i mówisz: daj mi co najmniej 7 z nich.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Przynajmniej jedną rzecz możesz użyć

lookahead
http://www.regular-expressions ... ml... Wygląda na to, że już rozgryzłeś resztę (klasa postaci, powtórzenia, kotwice).
/^(?=.*[a-z0-9])[a-z0-9!@#$%&*.]{7,}$/i

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się