Mam wyrażenie regularne w następujący sposób:
^/[a-z0-9]+$
To pasuje do ciągów takich jak /hello
lub/hello123
.
Chciałbym jednak wykluczyć kilka wartości łańcuchowych, takich jak /ignoreme
i /ignoreme2
.
Wypróbowałem kilka wariantów, ale wydaje się, że żaden nie działa!
Moja ostatnia słaba próba była
^/(((?!ignoreme)|(?!ignoreme2))[a-z0-9])+$
Każda pomoc będzie wdzięczna :-)
Odpowiedzi:
Oto jeszcze jeden sposób (przy użyciu negatywnego spojrzenia w przyszłość ):
Uwaga: Jest tylko jeden wyraz przechwytywanie:
([a-z0-9]+)
.źródło
(\?(.+))?$
powinien być szybki. Nie martwiłbym się zbytnio szybkością.java.util.regex.Pattern
klasy Java .To powinno to zrobić:
Możesz dodać tyle ignorowanych słów, ile chcesz, oto prosta implementacja PHP:
źródło
Aby wykluczyć oba słowa, potrzebujesz koniugacji:
Teraz oba warunki muszą być spełnione (ani ignoreme, ani ignoreme2 nie są dozwolone), aby mieć dopasowanie.
źródło
/ignoremenot
jak/
następujeignoreme
.