2011-05-18 12 views

Odpowiedz

6

Jeśli silnik regexp ma zero width negative lookahead, a następnie:

/\b((?!91)[0-9]{22})\b/ 

(?!91) powoduje wzór dopasować tylko jeśli kolejne dwa znaki nie 91, ale nie spożywają te znaki, pozostawiając im towarzyszyć [0-9]{22} .

Wiele silników regexp pozwala również na cyfry dziesiętne w postaci \d. Jeśli twój robi, a następnie:

/\b((?!91)\d{22})\b/ 
+0

Bingo! To działało idealnie. Dzięki. – user77413

+0

@ user77413, Nie ma za co, a dzięki za znacznik wyboru. –

2

Spróbuj tego:

/\b(?:[0-8][0-9]|9[02-9])[0-9]{20}\b/ 
+0

(negatywna zmiana z wyprzedzeniem jest zdecydowanie lepsza, jeśli jest obsługiwana) – Kobi

+0

A jeśli negatywny poprzednik nie jest obsługiwany, jest to droga. –