Regex wykluczenie znaku z przodu i z tyłu tekstu

Regex wykluczenie znaku z przodu i z tyłu tekstu
JA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 127
0

Cześć,

jesli neodpowiedni wątek - dajcie znać proszę.

mam taki regex:

Kopiuj
^[A-Za-z][A-Za-z0-9\-_]{0,10}[A-Za-z0-9]?$|^$

i on jest w porządku z tym, że:
jak wpisze ciąg HANA0(underscore) to tez dziala a ja chce wykluczyc jako pierwszy oraz ostatni znak "_" (underscore)
Czyli tekst moze miec mniej niz 12 znaków (wykluczam underscore także wtedy kiedy mam mniej niz 12 znaków na koncu)

w miejscu undercore jest znak podkreślnika, który nie chce mi sie wczytac na forum.

Proszę o pomoc,
Jacek

damianem
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 205
2

Chyba powinieneś usunąć znak zapytania przy ostatnim zbiorze, bo z tego co napisałeś wynika, że chcesz właśnie wymusić, żeby ostatnim znakiem było coś ze zbioru niezawierającego underscore - w tym momencie ten warunek jest opcjonalny właśnie przez pytajnik. Możesz się też zainteresować negative lookbehind/lookahead.

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10230
1
Kopiuj
^[A-Za-z][A-Za-z0-9\-_]{0,10}[A-Za-z0-9]$

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.