Jestem nieco zaskoczony konkretnym wyrażeń regularnych, który wydaje się prosty.Prosty Regeks, dopasuj dowolny ciąg z co najmniej jednym łącznikiem
Dopasowanie musi być ciągiem zawierającym tylko a-z, A-Z, 0-9 i musi mieć co najmniej jedno wystąpienie znaku "-" w dowolnym miejscu ciągu.
Mam [a-zA-Z0-9-]+
, ale problem polega na tym, że dopasuje się również do tych bez znaku "-".
ABC123-ABC //should match
ABC123ABC //shouldn't match.
Dzięki, rób rzeczy s dostaniesz się naprawdę długo, jeśli potrzebujesz n liczby myślników? – maxp
Po prostu FYI: pierwsze wyrażenie w tym poście ('^ [a-zA-Z0-9] * - [a-zA-Z0-9] * $') dopasowuje _exactly_ jeden łącznik, więc jeśli chcesz __ co najmniej jeden łącznik (jak podano w oryginalnym wpisie), powinieneś go zawinąć jak inne przykłady i dodać ** + **: '^ ([a-zA-Z0-9] * - [a-zA-Z0-9] *) + $ ' –
To będzie nawet pasować do łańcucha, który ma tylko -. Co jeśli zawsze trzeba będzie zawijać między alfanumami? Nie używamy ([a-zA-Z0-9] + - [a-zA-Z0 -9] +) Próbowałem, ale nie pasuje poprawnie. Czy ta część pasma po dopasowaniu nie będzie brana pod uwagę po raz drugi? Przepraszam, jestem nowy w regex i zdezorientowany. –