Замена chemform в вики - регулярное выражение

Не могли бы вы дать мне совет, я заменяю<chemform> код из моей вики, который больше не используется ... Строки обычно такие простые:

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

Мне нужно, чтобы они были заменены этими:

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

До сих пор я придумал это регулярное выражение дляИнструмент RegExr:

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

replace: $1<sub>$2</sub>$3$4<sub>$5</sub>$6<sup>$7</sup>

Я знаю, что код ужасен, но пока он работает для меня, за исключением того факта, что он дает мне пустые строки, такие как<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>

Как я могу избавиться от них, не делая второй поиск замены? Большое спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос