Mam listę ciągów. Niektóre z nich mają formę 123-...456
. Część zmienna „...” może być:
- ciąg „jabłko”, po którym następuje myślnik, np
123-apple-456
- ciąg „banan”, po którym następuje myślnik, np
123-banana-456
- pusty ciąg znaków, np.
123-456
(pamiętaj, że jest tylko jeden łącznik)
Każde słowo inne niż „jabłko” lub „banan” jest nieprawidłowe.
W tych trzech przypadkach chciałbym dopasować odpowiednio „jabłko”, „banan” i „”. Pamiętaj, że nigdy nie chcę przechwytywać łącznika, ale zawsze chcę go dopasować . Jeśli ciąg nie ma takiej postaci, 123-...456
jak opisano powyżej, to w ogóle nie ma zgodności.
Jak napisać wyrażenie regularne, aby to zrobić? Załóżmy, że mam smak, który pozwala grupom patrzeć naprzód, patrzeć za siebie, patrzeć i nie przechwytywać.
Kluczową obserwacją jest to, że gdy masz „jabłko” lub „banan”, musisz także mieć łącznik końcowy, ale nie chcesz go dopasowywać. A kiedy jesteś dopasowanie pusty ciąg, to nie muszą mieć łącznik z tyłu. Myślę, że wyrażenie regularne, które zawiera to twierdzenie, będzie właściwe.