Немного расшириный и углубленый вариант с регекспами.