Substituindo o chemform no wiki - regexp

você poderia por favor me dar algum conselho, eu estou substituindo o<chemform> código da minha wiki que não é mais usado ... As strings são geralmente simples como estas:

<chemform>CH3COO-</chemform>
<chemform>Ba2+</chemform>
<chemform>H2CO3</chemform>

Eu preciso que eles sejam substituídos por estes:

CH<sub>3</sub>COO<sup>-</sup>
Ba<sub>2</sub><sup>+</sup>
H<sub>2</sub>CO<sub>3</sub>

Até agora eu vim com este regexp para oFerramenta RegExr:

partida: <chemform\b[^>]*>(\D*?)([0-9]*)(\D*?)(\D*?)([0-9]*)(\D*?)([-+]*?)</chemform>

substituir: $1<sub>$2</sub>Até agora eu vim com este regexp para o4<sub>$5</sub>$6<sup>$7</sup>

Eu sei que o código é horrível, mas até agora tem funcionado para mim, exceto pelo fato de estar me deixando com cordas vazias como<sub></sub>:

<sub></sub>CH<sub>3</sub>COO<sup>-</sup>
<sub></sub>Ba<sub>2</sub><sup>+</sup>
H<sub>2</sub>CO<sub>3</sub><sup></sup>

Como posso me livrar deles sem fazer a segunda busca de substituição? Muito obrigado!

questionAnswers(1)

yourAnswerToTheQuestion