Seria uma dor de cabeça resolver esse tipo de problema com correspondência de padrões. Verifique este Fora.