/ / Znajdź znaki początkowe i znaki specjalne w łańcuchu - regex, ciąg znaków

Znajdź znaki początkowe i znaki specjalne w łańcuchu - regex, ciąg znaków

Jestem nowy w RegEx i muszę wymyślić RegEx, który znajdzie pasujące znaki w ciągu znaków.

Możliwe ciągi, które mogłem uzyskać to:

DFG-2344KG
4GGRTE/345
9TTRRE-547
7TTRRE-547
T89FGFGD+9

Tak, czego chcę, to RegEx, który sprawdzi, czy ciąg zaczyna się od DFG lub 4 lub 7 lub T I ma tylko "-"dla znaków specjalnych innych niż znaki alfanumeryczne.

Z powyższej listy tylko 9TTRRE-547 będzie prawidłowym łańcuchem.

Szukam RegEx, które może to dla mnie zrobić. Jak dotąd wymyśliłem:

^ (DFG | T | 4 | 7)

Powyższy RegEx poprawnie wyszukuje nieprawidłowe znaki początkowe. Teraz wyzwaniem jest znalezienie specjalnego znaku innego niż "-", który może się zdarzyć w dowolnym miejscu ciągu.

Jakieś sugestie?

Odpowiedzi:

1 dla odpowiedzi № 1

Chciałbym spróbować z:

^(DFG|4|7|T)[A-Z0-9-]+$

Jest dokładnie tym, z czym dotychczas się łączyłeś [A-Z0-9-]+ aby wskazać: "dowolny znak alfanumeryczny lub -. Mówiąc + mamy na myśli, że występuje on jeden lub wiele razy.

Następnie, $ wskazać koniec linii.

Możesz zobaczyć, jak działa https://regex101.com/r/mX5kV8/1 w tych meczach:

DFG-2344KG
7TTRRE-547
7TTRRE547