Your current parser is dying because it is trying to sew jeans with a knitting needle.
Regexen are not the right tool for parsing languages for which the meaning of a token depends heavily on context or is part of a recursively nested pair. XML has both those features. Your regex isn't working anymore because it is having difficulty determining the context of the greater than and less than signs it is trying to replace.
I will grant you that you can get a regex based parser to work for controlled set of input, but no matter how hard you try it will be fragile. And the more you try to make it work, the more difficult it will be to explain and maintain those regexen.
Rewriting something that you trust is never fun, especially if you are fighting deadlines, but the problems you are having signal that you have outgrown the capacity of your old tools and it is time to move on to better tools.
Best, beth
|