Eu tenho uma lista de strings. Alguns deles são da forma 123-...456
. A porção variável "..." pode ser:
- a string "apple" seguida de um hífen, por exemplo
123-apple-456
- a cadeia "banana" seguida de um hífen, por exemplo
123-banana-456
- uma string em branco, por exemplo
123-456
(observe que há apenas um hífen)
Qualquer palavra que não seja "maçã" ou "banana" é inválida.
Para esses três casos, eu gostaria de combinar "maçã", "banana" e "", respectivamente. Observe que eu nunca quero capturar o hífen, mas sempre quero combiná- lo. Se a sequência não tiver a forma 123-...456
descrita acima, não haverá correspondência.
Como escrevo uma expressão regular para fazer isso? Suponha que eu tenha um sabor que permita grupos de olhar para trás, olhar para trás, olhar em volta e não capturar.
A observação principal aqui é que, quando você tem "maçã" ou "banana", também deve ter o hífen à direita, mas não deseja correspondê-lo. E quando você estiver combinando a sequência em branco, não deverá ter o hífen à direita. Um regex que encapsula essa afirmação será o correto, eu acho.